Namespaces

Enumerations

enum 
Name Value
TB_INDEX_0 0
TB_INDEX_1 1
TB_INDEX_2 2
TB_INDEX_3 3
TB_INDEX_4 4
TB_INDEX_MASK 0x7
TB_NO_REVERSE 1 << 3
TB_NO_FORWARD 1 << 4
TB_FOLDED_LOAD 1 << 5
TB_FOLDED_STORE 1 << 6
TB_ALIGN_SHIFT 7
TB_ALIGN_1 0 << TB_ALIGN_SHIFT
TB_ALIGN_16 4 << TB_ALIGN_SHIFT
TB_ALIGN_32 5 << TB_ALIGN_SHIFT
TB_ALIGN_64 6 << TB_ALIGN_SHIFT
TB_ALIGN_MASK 0x7 << TB_ALIGN_SHIFT
TB_BCAST_TYPE_SHIFT TB_ALIGN_SHIFT + 3
TB_BCAST_W 1 << TB_BCAST_TYPE_SHIFT
TB_BCAST_D 2 << TB_BCAST_TYPE_SHIFT
TB_BCAST_Q 3 << TB_BCAST_TYPE_SHIFT
TB_BCAST_SS 4 << TB_BCAST_TYPE_SHIFT
TB_BCAST_SD 5 << TB_BCAST_TYPE_SHIFT
TB_BCAST_SH 6 << TB_BCAST_TYPE_SHIFT
TB_BCAST_MASK 0x7 << TB_BCAST_TYPE_SHIFT
Defined at line 13 of file llvm/include/llvm/Support/X86FoldTablesUtils.h
enum CombineLevel
Name Value
BeforeLegalizeTypes 0
AfterLegalizeTypes 1
AfterLegalizeVectorOps 2
AfterLegalizeDAG 3
Defined at line 15 of file llvm/include/llvm/CodeGen/DAGCombine.h
enum LoopIdiomVectorizeStyle
Name Value
Masked 0
Predicated 1
Defined at line 16 of file llvm/include/llvm/Transforms/Vectorize/LoopIdiomVectorize.h
enum StructuralHashOptions
Name Value
None 0
Detailed 1
CallTargetIgnored 2
Defined at line 16 of file llvm/include/llvm/Analysis/StructuralHash.h
enum AsanDtorKind
Name Value
None 0
Global 1
Invalid 2
Defined at line 16 of file llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h
enum AlignStyle
Name Value
Left 0
Center 1
Right 2
Defined at line 17 of file llvm/include/llvm/Support/FormatCommon.h
enum LoopPeelDirection
Name Value
LPD_Front 0
LPD_Back 1
Defined at line 17 of file llvm/include/llvm/CodeGen/MachineLoopUtils.h
enum FloatStyle
Name Value
Exponent 0
ExponentUpper 1
Fixed 2
Percent 3
Defined at line 18 of file llvm/include/llvm/Support/NativeFormatting.h
enum WaitForUnlockResult
Name Value
Success 0
OwnerDied 1
Timeout 2
Defined at line 18 of file llvm/include/llvm/Support/AdvisoryLock.h
enum InstructionUniformity
Name Value
Default 0
AlwaysUniform 1
NeverUniform 2
Defined at line 18 of file llvm/include/llvm/ADT/Uniformity.h
enum ChangePrinter
Name Value
None 0
Verbose 1
Quiet 2
DiffVerbose 3
DiffQuiet 4
ColourDiffVerbose 5
ColourDiffQuiet 6
DotCfgVerbose 7
DotCfgQuiet 8
Defined at line 18 of file llvm/include/llvm/IR/PrintPasses.h
enum MCSymbolAttr
Name Value
MCSA_Invalid 0
MCSA_Cold 1
MCSA_ELF_TypeFunction 2
MCSA_ELF_TypeIndFunction 3
MCSA_ELF_TypeObject 4
MCSA_ELF_TypeTLS 5
MCSA_ELF_TypeCommon 6
MCSA_ELF_TypeNoType 7
MCSA_ELF_TypeGnuUniqueObject 8
MCSA_Global 9
MCSA_LGlobal 10
MCSA_Extern 11
MCSA_Hidden 12
MCSA_Exported 13
MCSA_IndirectSymbol 14
MCSA_Internal 15
MCSA_LazyReference 16
MCSA_Local 17
MCSA_NoDeadStrip 18
MCSA_SymbolResolver 19
MCSA_AltEntry 20
MCSA_PrivateExtern 21
MCSA_Protected 22
MCSA_Reference 23
MCSA_Weak 24
MCSA_WeakDefinition 25
MCSA_WeakReference 26
MCSA_WeakDefAutoPrivate 27
MCSA_WeakAntiDep 28
MCSA_Memtag 29
MCSA_OSLinkage 30
MCSA_XPLinkage 31
Defined at line 18 of file llvm/include/llvm/MC/MCDirectives.h
enum IntegerStyle
Name Value
Integer 0
Number 1
Defined at line 19 of file llvm/include/llvm/Support/NativeFormatting.h
enum OnCuIndexOverflow
Name Value
HardStop 0
SoftStop 1
Continue 2
Defined at line 19 of file llvm/include/llvm/DWP/DWP.h
enum ExpandVariadicsMode
Name Value
Unspecified 0
Disable 1
Optimize 2
Lowering 3
Defined at line 19 of file llvm/include/llvm/Transforms/IPO/ExpandVariadics.h
enum stream_error_code
Name Value
unspecified 0
stream_too_short 1
invalid_array_size 2
invalid_offset 3
filesystem_error 4
Defined at line 19 of file llvm/include/llvm/Support/BinaryStreamError.h
enum SDNP
Name Value
SDNPCommutative 0
SDNPAssociative 1
SDNPHasChain 2
SDNPOutGlue 3
SDNPInGlue 4
SDNPOptInGlue 5
SDNPMayLoad 6
SDNPMayStore 7
SDNPSideEffect 8
SDNPMemOperand 9
SDNPVariadic 10
Defined at line 19 of file llvm/utils/TableGen/Common/../Basic/SDNodeProperties.h
enum BinaryStreamFlags
Name Value
BSF_None 0
BSF_Write 1
BSF_Append 2
LLVM_BITMASK_LARGEST_ENUMERATOR BSF_Append
Defined at line 20 of file llvm/include/llvm/Support/BinaryStream.h
enum VPExpansionDetails
Name Value
IntrinsicUnchanged 0
IntrinsicUpdated 1
IntrinsicReplaced 2
Defined at line 20 of file llvm/include/llvm/CodeGen/ExpandVectorPredication.h
enum VectorLibrary
Name Value
NoLibrary 0
Accelerate 1
DarwinLibSystemM 2
LIBMVEC 3
MASSV 4
SVML 5
SLEEFGNUABI 6
ArmPL 7
AMDLIBM 8
Defined at line 20 of file llvm/include/llvm/IR/SystemLibraries.h
enum KCFIHashAlgorithm
Name Value
xxHash64 0
FNV1a 1
Defined at line 21 of file llvm/include/llvm/Support/Hash.h
enum CombinerObjective
Name Value
MustReduceDepth 0
MustReduceRegisterPressure 1
Default 2
Defined at line 21 of file llvm/include/llvm/CodeGen/MachineCombinerPattern.h
enum EmitDwarfUnwindType
Name Value
Always 0
NoCompactUnwind 1
Default 2
Defined at line 21 of file llvm/include/llvm/MC/MCTargetOptions.h
enum cxxdump_error
Name Value
success 0
file_not_found 1
unrecognized_file_format 2
Defined at line 21 of file llvm/tools/llvm-cxxdump/Error.h
enum EHPersonality
Name Value
Unknown 0
GNU_Ada 1
GNU_C 2
GNU_C_SjLj 3
GNU_CXX 4
GNU_CXX_SjLj 5
GNU_ObjC 6
MSVC_X86SEH 7
MSVC_TableSEH 8
MSVC_CXX 9
CoreCLR 10
Rust 11
Wasm_CXX 12
XL_CXX 13
ZOS_CXX 14
Defined at line 22 of file llvm/include/llvm/IR/EHPersonalities.h
enum IntrinsicType
Name Value
CVTNEPS2BF16_MASK 0
GATHER 1
SCATTER 2
PREFETCH 3
RDSEED 4
RDRAND 5
RDPMC 6
RDTSC 7
XTEST 8
XGETBV 9
ADX 10
FPCLASSS 11
INTR_TYPE_1OP 12
INTR_TYPE_2OP 13
INTR_TYPE_3OP 14
INTR_TYPE_4OP_IMM8 15
INTR_TYPE_3OP_IMM8 16
CFMA_OP_MASK 17
CFMA_OP_MASKZ 18
CMP_MASK_CC 19
CMP_MASK_SCALAR_CC 20
VSHIFT 21
COMI 22
COMI_RM 23
BLENDV 24
BEXTRI 25
CVTPD2PS_MASK 26
INTR_TYPE_1OP_SAE 27
INTR_TYPE_2OP_SAE 28
INTR_TYPE_1OP_MASK_SAE 29
INTR_TYPE_2OP_MASK_SAE 30
INTR_TYPE_3OP_MASK_SAE 31
INTR_TYPE_1OP_MASK 32
INTR_TYPE_2OP_MASK 33
IFMA_OP 34
VPERM_2OP 35
INTR_TYPE_SCALAR_MASK 36
INTR_TYPE_SCALAR_MASK_SAE 37
INTR_TYPE_SCALAR_MASK_RND 38
INTR_TYPE_3OP_SCALAR_MASK_SAE 39
COMPRESS_EXPAND_IN_REG 40
TRUNCATE_TO_REG 41
TRUNCATE2_TO_REG 42
CVTPS2PH_MASK 43
CVTPD2DQ_MASK 44
CVTQQ2PS_MASK 45
TRUNCATE_TO_MEM_VI8 46
TRUNCATE_TO_MEM_VI16 47
TRUNCATE_TO_MEM_VI32 48
FIXUPIMM 49
FIXUPIMM_MASKZ 50
GATHER_AVX2 51
ROUNDP 52
ROUNDS 53
RDPRU 54
INTR_TYPE_CAST_MMX 55
Defined at line 22 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h
enum HexPrintStyle
Name Value
Upper 0
Lower 1
PrefixUpper 2
PrefixLower 3
Defined at line 23 of file llvm/include/llvm/Support/NativeFormatting.h
enum 
Name Value
kSanitizerStatKindBits 3
Defined at line 23 of file llvm/include/llvm/Transforms/Utils/SanitizerStats.h
enum AsanCtorKind
Name Value
None 0
Global 1
Defined at line 23 of file llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h
enum PGOCtxProfileRecords
Name Value
Invalid 0
Version 1
Guid 2
CallsiteIndex 3
Counters 4
TotalRootEntryCount 5
Defined at line 23 of file llvm/include/llvm/ProfileData/PGOCtxProfWriter.h
enum 
Name Value
FirstLiteralRelocationKind 2000
FK_NONE 4000
FK_Data_1 4001
FK_Data_2 4002
FK_Data_4 4003
FK_Data_8 4004
FK_Data_leb128 4005
FK_SecRel_1 4006
FK_SecRel_2 4007
FK_SecRel_4 4008
FK_SecRel_8 4009
FirstTargetFixupKind 4010
Defined at line 23 of file llvm/include/llvm/MC/MCFixup.h
enum SROAOptions
Name Value
ModifyCFG 0
PreserveCFG 1
Defined at line 24 of file llvm/include/llvm/Transforms/Scalar/SROA.h
enum RunOutliner
Name Value
TargetDefault 0
AlwaysOutline 1
OptimisticPGO 2
ConservativePGO 3
NeverOutline 4
Defined at line 24 of file llvm/include/llvm/Target/CGPassBuilderOption.h
enum AllocTokenMode
Name Value
Increment 0
Random 1
TypeHash 2
TypeHashPointerSplit 3
Defined at line 24 of file llvm/include/llvm/Support/AllocToken.h
enum DiffChange
Name Value
DC_match 0
DC_left 1
DC_right 2
Defined at line 25 of file llvm/tools/llvm-diff/lib/DiffLog.h
enum InterfaceInputOrder
Name Value
lhs 0
rhs 1
Defined at line 25 of file llvm/tools/llvm-readtapi/DiffEngine.h
enum Dwarf64StrOffsetsPromotion
Name Value
Disabled 0
Enabled 1
Always 2
Defined at line 25 of file llvm/include/llvm/DWP/DWP.h
enum SubDirectoryType
Name Value
Bin 0
Include 1
Lib 2
Defined at line 25 of file llvm/include/llvm/WindowsDriver/MSVCPaths.h
enum SanitizerStatKind
Name Value
SanStat_CFI_VCall 0
SanStat_CFI_NVCall 1
SanStat_CFI_DerivedCast 2
SanStat_CFI_UnrelatedCast 3
SanStat_CFI_ICall 4
Defined at line 25 of file llvm/include/llvm/Transforms/Utils/SanitizerStats.h
enum VariableID
Name Value
Reserved 0
Defined at line 26 of file llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h
enum AMXProgModelEnum
Name Value
None 0
DirectReg 1
ManagedRA 2
Defined at line 26 of file llvm/lib/Target/X86/X86MachineFunctionInfo.h
enum 
Name Value
demangle_unknown_error -4
demangle_invalid_args -3
demangle_invalid_mangled_name -2
demangle_memory_alloc_failure -1
demangle_success 0
Defined at line 26 of file llvm/include/llvm/Demangle/Demangle.h
enum BitstreamWrapperHeader
Name Value
BWH_MagicField 0 * 4
BWH_VersionField 1 * 4
BWH_OffsetField 2 * 4
BWH_SizeField 3 * 4
BWH_CPUTypeField 4 * 4
BWH_HeaderSize 5 * 4
Defined at line 26 of file llvm/include/llvm/Bitstream/BitCodeEnums.h
enum VFParamKind
Name Value
Vector 0
OMP_Linear 1
OMP_LinearRef 2
OMP_LinearVal 3
OMP_LinearUVal 4
OMP_LinearPos 5
OMP_LinearValPos 6
OMP_LinearRefPos 7
OMP_LinearUValPos 8
OMP_Uniform 9
GlobalPredicate 10
Unknown 11
Defined at line 26 of file llvm/include/llvm/IR/VFABIDemangler.h
enum HTTPMethod
Name Value
GET 0
Defined at line 27 of file llvm/include/llvm/Debuginfod/HTTPClient.h
enum HighlightColor
Name Value
Address 0
String 1
Tag 2
Attribute 3
Enumerator 4
Macro 5
Error 6
Warning 7
Note 8
Remark 9
Defined at line 27 of file llvm/include/llvm/Support/WithColor.h
enum PseudoProbeReservedId
Name Value
Invalid 0
Last Invalid
Defined at line 28 of file llvm/include/llvm/IR/PseudoProbe.h
enum 
Name Value
SM_SentinelUndef -1
SM_SentinelZero -2
Defined at line 28 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.h
enum InternalRelocationType
Name Value
INTERNAL_REL_ARM64_LONG_BRANCH26 0x111
Defined at line 28 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h
enum DebugCompressionType
Name Value
None 0
Zlib 1
Zstd 2
Defined at line 28 of file llvm/include/llvm/Support/Compression.h
enum AtomicOrderingCABI
Name Value
relaxed 0
consume 1
acquire 2
release 3
acq_rel 4
seq_cst 5
Defined at line 28 of file llvm/include/llvm/Support/AtomicOrdering.h
enum DiffAttrKind
Name Value
AD_Diff_Scalar_PackedVersion 0
AD_Diff_Scalar_Unsigned 1
AD_Diff_Scalar_Bool 2
AD_Diff_Scalar_Str 3
AD_Str_Vec 4
AD_Sym_Vec 5
AD_Inline_Doc 6
Defined at line 28 of file llvm/tools/llvm-readtapi/DiffEngine.h
enum MachineCombinerPattern
Name Value
REASSOC_AX_BY 0
REASSOC_AX_YB 1
REASSOC_XA_BY 2
REASSOC_XA_YB 3
ACC_CHAIN 4
TARGET_PATTERN_START 5
Defined at line 28 of file llvm/include/llvm/CodeGen/MachineCombinerPattern.h
enum ModRefInfo
Name Value
NoModRef 0
Ref 1
Mod 2
ModRef Ref | Mod
LLVM_BITMASK_LARGEST_ENUMERATOR ModRef
Defined at line 28 of file llvm/include/llvm/Support/ModRef.h
enum AssumeBundleArg
Name Value
ABA_WasOn 0
ABA_Argument 1
Defined at line 29 of file llvm/include/llvm/Analysis/AssumeBundleQueries.h
enum AsanDetectStackUseAfterReturnMode
Name Value
Never 0
Runtime 1
Always 2
Invalid 3
Defined at line 29 of file llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h
enum ConvergenceKind
Name Value
None 0
Controlled 1
ExtendedLoop 2
Uncontrolled 3
Defined at line 30 of file llvm/include/llvm/Analysis/CodeMetrics.h
enum PseudoProbeType
Name Value
Block 0
IndirectCall 1
DirectCall 2
Defined at line 30 of file llvm/include/llvm/IR/PseudoProbe.h
enum X86MachineCombinerPattern
Name Value
DPWSSD MachineCombinerPattern::TARGET_PATTERN_START
Defined at line 30 of file llvm/lib/Target/X86/X86InstrInfo.h
enum CurStreamTypeType
Name Value
UnknownBitstream 0
LLVMIRBitstream 1
ClangSerializedASTBitstream 2
ClangSerializedDiagnosticsBitstream 3
LLVMBitstreamRemarks 4
Defined at line 30 of file llvm/include/llvm/Bitcode/BitcodeAnalyzer.h
enum LibFunc
Name Value
enum RegAllocType
Name Value
Unset 0
Default 1
Basic 2
Fast 3
Greedy 4
PBQP 5
Defined at line 31 of file llvm/include/llvm/Target/CGPassBuilderOption.h
enum ToolsetLayout
Name Value
OlderVS 0
VS2017OrNewer 1
DevDivInternal 2
Defined at line 31 of file llvm/include/llvm/WindowsDriver/MSVCPaths.h
enum SDTC
Name Value
SDTCisVT 0
SDTCisPtrTy 1
SDTCisInt 2
SDTCisFP 3
SDTCisVec 4
SDTCisSameAs 5
SDTCisVTSmallerThanOp 6
SDTCisOpSmallerThanOp 7
SDTCisEltOfVec 8
SDTCisSubVecOfVec 9
SDTCVecEltisVT 10
SDTCisSameNumEltsAs 11
SDTCisSameSizeAs 12
Defined at line 31 of file llvm/include/llvm/CodeGen/SDNodeInfo.h
enum PseudoProbeAttributes
Name Value
Reserved 0x1
Sentinel 0x2
HasDiscriminator 0x4
Defined at line 32 of file llvm/include/llvm/IR/PseudoProbe.h
enum PGOCtxProfileBlockIDs
Name Value
FIRST_VALID bitc::FIRST_APPLICATION_BLOCKID
ProfileMetadataBlockID FIRST_VALID
ContextsSectionBlockID ProfileMetadataBlockID + 1
ContextRootBlockID ContextsSectionBlockID + 1
ContextNodeBlockID ContextRootBlockID + 1
FlatProfilesSectionBlockID ContextNodeBlockID + 1
FlatProfileBlockID FlatProfilesSectionBlockID + 1
UnhandledBlockID FlatProfileBlockID + 1
LAST_VALID UnhandledBlockID
Defined at line 32 of file llvm/include/llvm/ProfileData/PGOCtxProfWriter.h
enum CGDataSectKind
Name Value
CG_outline 0
CG_merge 1
Defined at line 33 of file llvm/include/llvm/CGData/CodeGenData.h
enum CfiFunctionLinkage
Name Value
CFL_Definition 0
CFL_Declaration 1
CFL_WeakDeclaration 2
Defined at line 33 of file llvm/include/llvm/Analysis/TypeMetadataUtils.h
enum PGOViewCountsType
Name Value
PGOVCT_None 0
PGOVCT_Graph 1
PGOVCT_Text 2
Defined at line 34 of file llvm/include/llvm/Analysis/BlockFrequencyInfo.h
enum VerifierKind
Name Value
None 0
InputOutput 1
EachPass 2
Defined at line 34 of file llvm/tools/llc/NewPMDriver.h
enum MCLOHType
Name Value
MCLOH_AdrpAdrp 0x1u
MCLOH_AdrpLdr 0x2u
MCLOH_AdrpAddLdr 0x3u
MCLOH_AdrpLdrGotLdr 0x4u
MCLOH_AdrpAddStr 0x5u
MCLOH_AdrpLdrGotStr 0x6u
MCLOH_AdrpAdd 0x7u
MCLOH_AdrpLdrGot 0x8u
Defined at line 34 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h
enum RecurKind
Name Value
None 0
Add 1
Sub 2
AddChainWithSubs 3
Mul 4
Or 5
And 6
Xor 7
SMin 8
SMax 9
UMin 10
UMax 11
FAdd 12
FMul 13
FMin 14
FMax 15
FMinNum 16
FMaxNum 17
FMinimum 18
FMaximum 19
FMinimumNum 20
FMaximumNum 21
FMulAdd 22
AnyOf 23
FindFirstIVSMin 24
FindFirstIVUMin 25
FindLastIVSMax 26
FindLastIVUMax 27
Defined at line 34 of file llvm/include/llvm/Analysis/IVDescriptors.h
enum PGSOQueryType
Name Value
IRPass 0
Test 1
Other 2
Defined at line 35 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h
enum ComplexDeinterleavingOperation
Name Value
CAdd 0
CMulPartial 1
CDot 2
Deinterleave 3
Splat 4
Symmetric 5
ReductionPHI 6
ReductionOperation 7
ReductionSelect 8
ReductionSingle 9
Defined at line 35 of file llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
enum errc
Name Value
argument_list_too_long int(std::errc::argument_list_too_long)
argument_out_of_domain int(std::errc::argument_out_of_domain)
bad_address int(std::errc::bad_address)
bad_file_descriptor int(std::errc::bad_file_descriptor)
broken_pipe int(std::errc::broken_pipe)
delete_pending -56
device_or_resource_busy int(std::errc::device_or_resource_busy)
directory_not_empty int(std::errc::directory_not_empty)
executable_format_error int(std::errc::executable_format_error)
file_exists int(std::errc::file_exists)
file_too_large int(std::errc::file_too_large)
filename_too_long int(std::errc::filename_too_long)
function_not_supported int(std::errc::function_not_supported)
illegal_byte_sequence int(std::errc::illegal_byte_sequence)
inappropriate_io_control_operation int(std::errc::inappropriate_io_control_operation)
interrupted int(std::errc::interrupted)
invalid_argument int(std::errc::invalid_argument)
invalid_seek int(std::errc::invalid_seek)
io_error int(std::errc::io_error)
is_a_directory int(std::errc::is_a_directory)
no_child_process int(std::errc::no_child_process)
no_lock_available int(std::errc::no_lock_available)
no_space_on_device int(std::errc::no_space_on_device)
no_such_device_or_address int(std::errc::no_such_device_or_address)
no_such_device int(std::errc::no_such_device)
no_such_file_or_directory int(std::errc::no_such_file_or_directory)
no_such_process int(std::errc::no_such_process)
not_a_directory int(std::errc::not_a_directory)
not_enough_memory int(std::errc::not_enough_memory)
not_supported int(std::errc::not_supported)
operation_not_permitted int(std::errc::operation_not_permitted)
permission_denied int(std::errc::permission_denied)
read_only_file_system int(std::errc::read_only_file_system)
resource_deadlock_would_occur int(std::errc::resource_deadlock_would_occur)
resource_unavailable_try_again int(std::errc::resource_unavailable_try_again)
result_out_of_range int(std::errc::result_out_of_range)
too_many_files_open_in_system int(std::errc::too_many_files_open_in_system)
too_many_files_open int(std::errc::too_many_files_open)
too_many_links int(std::errc::too_many_links)
Defined at line 35 of file llvm/include/llvm/Support/Errc.h
enum AsmRewriteKind
Name Value
AOK_Align 0
AOK_EVEN 1
AOK_Emit 2
AOK_CallInput 3
AOK_Input 4
AOK_Output 5
AOK_SizeDirective 6
AOK_Label 7
AOK_EndOfStatement 8
AOK_Skip 9
AOK_IntelExpr 10
Defined at line 36 of file llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
enum RoundingMode
Name Value
TowardZero 0
NearestTiesToEven 1
TowardPositive 2
TowardNegative 3
NearestTiesToAway 4
Dynamic 7
Invalid -1
Defined at line 38 of file llvm/include/llvm/ADT/FloatingPointMode.h
enum SCEVTypes
Name Value
scConstant 0
scVScale 1
scTruncate 2
scZeroExtend 3
scSignExtend 4
scAddExpr 5
scMulExpr 6
scUDivExpr 7
scAddRecExpr 8
scUMaxExpr 9
scSMaxExpr 10
scUMinExpr 11
scSMinExpr 12
scSequentialUMinExpr 13
scPtrToInt 14
scUnknown 15
scCouldNotCompute 16
Defined at line 38 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
enum 
Name Value
DefaultMode CodeGenHwModes::DefaultMode
Defined at line 39 of file llvm/utils/TableGen/Common/InfoByHwMode.h
enum StatepointFlags
Name Value
None 0
GCTransition 1
DeoptLiveIn 2
MaskAll 3
Defined at line 39 of file llvm/include/llvm/IR/Statepoint.h
enum MSDemangleFlags
Name Value
MSDF_None 0
MSDF_DumpBackrefs 1 << 0
MSDF_NoAccessSpecifier 1 << 1
MSDF_NoCallingConvention 1 << 2
MSDF_NoReturnType 1 << 3
MSDF_NoMemberType 1 << 4
MSDF_NoVariableType 1 << 5
Defined at line 40 of file llvm/include/llvm/Demangle/Demangle.h
enum ColorMode
Name Value
Auto 0
Enable 1
Disable 2
Defined at line 40 of file llvm/include/llvm/Support/WithColor.h
enum CGDataKind
Name Value
Unknown 0x0
FunctionOutlinedHashTree 0x1
StableFunctionMergingMap 0x2
LLVM_BITMASK_LARGEST_ENUMERATOR StableFunctionMergingMap
Defined at line 42 of file llvm/include/llvm/CGData/CodeGenData.h
enum InliningAdvisorMode
Name Value
Default 0
Release 1
Development 2
Defined at line 43 of file llvm/include/llvm/Analysis/InlineAdvisor.h
enum UnitKind
Name Value
Skeleton 0
Full 1
Defined at line 43 of file llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
enum SymtabWritingMode
Name Value
NoSymtab 0
NormalSymtab 1
BigArchive32 2
BigArchive64 3
Defined at line 45 of file llvm/include/llvm/Object/ArchiveWriter.h
enum VFISAKind
Name Value
AdvancedSIMD 0
SVE 1
RVV 2
SSE 3
AVX 4
AVX2 5
AVX512 6
LLVM 7
Unknown 8
Defined at line 45 of file llvm/include/llvm/IR/VFABIDemangler.h
enum ReplacementType
Name Value
Format 0
Literal 1
Defined at line 46 of file llvm/include/llvm/Support/FormatVariadic.h
enum InlinePass
Name Value
AlwaysInliner 0
CGSCCInliner 1
EarlyInliner 2
ModuleInliner 3
MLInliner 4
ReplayCGSCCInliner 5
ReplaySampleProfileInliner 6
SampleProfileInliner 7
Defined at line 46 of file llvm/include/llvm/Analysis/InlineAdvisor.h
enum SDNF
Name Value
SDNFIsStrictFP 0
Defined at line 47 of file llvm/include/llvm/CodeGen/SDNodeInfo.h
enum sampleprof_error
Name Value
success 0
bad_magic 1
unsupported_version 2
too_large 3
truncated 4
malformed 5
unrecognized_format 6
unsupported_writing_format 7
truncated_name_table 8
not_implemented 9
counter_overflow 10
ostream_seek_unsupported 11
uncompress_failed 12
zlib_unavailable 13
hash_mismatch 14
illegal_line_offset 15
Defined at line 49 of file llvm/include/llvm/ProfileData/SampleProf.h
enum lostFraction
Name Value
lfExactlyZero 0
lfLessThanHalf 1
lfExactlyHalf 2
lfMoreThanHalf 3
Defined at line 50 of file llvm/include/llvm/ADT/APFloat.h
enum AllocFnKind
Name Value
Unknown 0
Alloc 1 << 0
Realloc 1 << 1
Free 1 << 2
Uninitialized 1 << 3
Zeroed 1 << 4
Aligned 1 << 5
LLVM_BITMASK_LARGEST_ENUMERATOR Aligned
Defined at line 51 of file llvm/include/llvm/IR/Attributes.h
enum LiveRangeStage
Name Value
RS_New 0
RS_Assign 1
RS_Split 2
RS_Split2 3
RS_Spill 4
RS_Done 5
Defined at line 51 of file llvm/include/llvm/CodeGen/RegAllocEvictionAdvisor.h
enum LLVMConstants
Name Value
DEBUG_METADATA_VERSION 3
Defined at line 53 of file llvm/include/llvm/IR/Metadata.h
enum WindowSchedulingFlag
Name Value
WS_Off 0
WS_On 1
WS_Force 2
Defined at line 53 of file llvm/include/llvm/CodeGen/WindowScheduler.h
enum ExceptionHandling
Name Value
None 0
DwarfCFI 1
SjLj 2
ARM 3
WinEH 4
Wasm 5
AIX 6
ZOS 7
Defined at line 53 of file llvm/include/llvm/Support/CodeGen.h
enum DiagnosticSeverity
Name Value
DS_Error 0
DS_Warning 1
DS_Remark 2
DS_Note 3
Defined at line 50 of file llvm/include/llvm/IR/DiagnosticInfo.h
enum ComplexDeinterleavingRotation
Name Value
Rotation_0 0
Rotation_90 1
Rotation_180 2
Rotation_270 3
Defined at line 50 of file llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
enum PGOInstrumentationType
Name Value
Invalid 0
FDO 1
CSFDO 2
CTXPROF 3
Defined at line 52 of file llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
enum EmbeddingLevel
Name Value
InstructionLevel 0
BasicBlockLevel 1
FunctionLevel 2
Defined at line 52 of file llvm/tools/llvm-ir2vec/llvm-ir2vec.h
enum cgdata_error
Name Value
success 0
eof 1
bad_magic 2
bad_header 3
empty_cgdata 4
malformed 5
unsupported_version 6
Defined at line 53 of file llvm/include/llvm/CGData/CodeGenData.h
enum PassSummaryAction
Name Value
None 0
Import 1
Export 2
Defined at line 54 of file llvm/include/llvm/Transforms/IPO.h
enum TensorType
Name Value
Invalid 0
Float 1
Double 2
Int8 3
UInt8 4
Int16 5
UInt16 6
Int32 7
UInt32 8
Int64 9
UInt64 10
Total 11
Defined at line 54 of file llvm/include/llvm/Analysis/TensorSpec.h
enum MCDataRegionType
Name Value
MCDR_DataRegion 0
MCDR_DataRegionJT8 1
MCDR_DataRegionJT16 2
MCDR_DataRegionJT32 3
MCDR_DataRegionEnd 4
Defined at line 55 of file llvm/include/llvm/MC/MCDirectives.h
enum 
Name Value
GICXXPred_Invalid 0
GICXXCustomAction_Invalid 0
Defined at line 56 of file llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
enum MCRegUnit
Name Value
enum PassManagerType
Name Value
PMT_Unknown 0
PMT_ModulePassManager 1
PMT_CallGraphPassManager 2
PMT_FunctionPassManager 3
PMT_LoopPassManager 4
PMT_RegionPassManager 5
PMT_Last 6
Defined at line 56 of file llvm/include/llvm/Pass.h
enum AtomicOrdering
Name Value
NotAtomic 0
Unordered 1
Monotonic 2
Acquire 4
Release 5
AcquireRelease 6
SequentiallyConsistent 7
LAST SequentiallyConsistent
Defined at line 56 of file llvm/include/llvm/Support/AtomicOrdering.h
enum BasicBlockSection
Name Value
All 0
List 1
Preset 2
None 3
Defined at line 56 of file llvm/include/llvm/Target/TargetOptions.h
enum DWARFSectionKind
Name Value
DW_SECT_EXT_unknown 0
DW_SECT_INFO 1
DW_SECT_ABBREV 3
DW_SECT_LINE 4
DW_SECT_LOCLISTS 5
DW_SECT_STR_OFFSETS 6
DW_SECT_MACRO 7
DW_SECT_RNGLISTS 8
DW_SECT_EXT_TYPES 2
DW_SECT_EXT_LOC 9
DW_SECT_EXT_MACINFO 10
Defined at line 57 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
enum fltNonfiniteBehavior
Name Value
IEEE754 0
NanOnly 1
FiniteOnly 2
Defined at line 57 of file llvm/lib/Support/APFloat.cpp
enum LoopUnrollResult
Name Value
Unmodified 0
PartiallyUnrolled 1
FullyUnrolled 2
Defined at line 58 of file llvm/include/llvm/Transforms/Utils/UnrollLoop.h
enum IRMemLocation
Name Value
ArgMem 0
InaccessibleMem 1
ErrnoMem 2
Other 3
TargetMem0 4
TargetMem1 5
First ArgMem
FirstTarget TargetMem0
Last TargetMem1
Defined at line 60 of file llvm/include/llvm/Support/ModRef.h
enum DiagnosticKind
Name Value
DK_Generic 0
DK_GenericWithLoc 1
DK_InlineAsm 2
DK_RegAllocFailure 3
DK_ResourceLimit 4
DK_StackSize 5
DK_Linker 6
DK_Lowering 7
DK_LegalizationFailure 8
DK_DebugMetadataVersion 9
DK_DebugMetadataInvalid 10
DK_Instrumentation 11
DK_ISelFallback 12
DK_SampleProfile 13
DK_OptimizationRemark 14
DK_OptimizationRemarkMissed 15
DK_OptimizationRemarkAnalysis 16
DK_OptimizationRemarkAnalysisFPCommute 17
DK_OptimizationRemarkAnalysisAliasing 18
DK_OptimizationFailure 19
DK_FirstRemark DK_OptimizationRemark
DK_LastRemark DK_OptimizationFailure
DK_MachineOptimizationRemark 20
DK_MachineOptimizationRemarkMissed 21
DK_MachineOptimizationRemarkAnalysis 22
DK_FirstMachineRemark DK_MachineOptimizationRemark
DK_LastMachineRemark DK_MachineOptimizationRemarkAnalysis
DK_MIRParser 23
DK_PGOProfile 24
DK_Unsupported 25
DK_SrcMgr 26
DK_DontCall 27
DK_MisExpect 28
DK_FirstPluginKind 29
Defined at line 61 of file llvm/include/llvm/IR/DiagnosticInfo.h
enum MCVersionMinType
Name Value
MCVM_IOSVersionMin 0
MCVM_OSXVersionMin 1
MCVM_TvOSVersionMin 2
MCVM_WatchOSVersionMin 3
Defined at line 63 of file llvm/include/llvm/MC/MCDirectives.h
enum PassKind
Name Value
PT_Region 0
PT_Loop 1
PT_Function 2
PT_CallGraphSCC 3
PT_Module 4
PT_PassManager 5
Defined at line 67 of file llvm/include/llvm/Pass.h
enum MIR2VecKind
Name Value
Symbolic 0
Defined at line 68 of file llvm/include/llvm/CodeGen/MIR2Vec.h
enum PredicateType
Name Value
PT_Branch 0
PT_Assume 1
PT_Switch 2
Defined at line 70 of file llvm/include/llvm/Transforms/Utils/PredicateInfo.h
enum InlineCostFeatureIndex
Name Value
sroa_savings 0
sroa_losses 1
load_elimination 2
call_penalty 3
call_argument_setup 4
load_relative_intrinsic 5
lowered_call_arg_setup 6
indirect_call_penalty 7
jump_table_penalty 8
case_cluster_penalty 9
switch_default_dest_penalty 10
switch_penalty 11
unsimplified_common_instructions 12
num_loops 13
dead_blocks 14
simplified_instructions 15
constant_args 16
constant_offset_ptr_args 17
callsite_cost 18
cold_cc_penalty 19
last_call_to_static_bonus 20
is_multiple_blocks 21
nested_inlines 22
nested_inline_cost_estimate 23
threshold 24
NumberOfFeatures 25
Defined at line 70 of file llvm/include/llvm/Analysis/InlineModelFeatureMaps.h
enum IR2VecKind
Name Value
Symbolic 0
FlowAware 1
Defined at line 71 of file llvm/include/llvm/Analysis/IR2Vec.h
enum endianness
Name Value
big 0
little 1
native little
Defined at line 71 of file llvm/include/llvm/ADT/bit.h
enum LocalNum
Name Value
LN_First 0
LN_Middle 1
LN_Last 2
Defined at line 71 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp
enum EABI
Name Value
Unknown 0
Default 1
EABI4 2
EABI5 3
GNU 4
Defined at line 73 of file llvm/include/llvm/Support/CodeGen.h
enum TextEncoding
Name Value
UTF8 0
IBM1047 1
Defined at line 73 of file llvm/include/llvm/Support/TextEncoding.h
enum RemapFlags
Name Value
RF_None 0
RF_NoModuleLevelChanges 1
RF_IgnoreMissingLocals 2
RF_ReuseAndMutateDistinctMDs 4
RF_NullMapMissingGlobalValues 8
RF_DoNotRemapAtoms 16
Defined at line 74 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
enum ThinOrFullLTOPhase
Name Value
None 0
ThinLTOPreLink 1
ThinLTOPostLink 2
FullLTOPreLink 3
FullLTOPostLink 4
Defined at line 77 of file llvm/include/llvm/Pass.h
enum ClrHandlerType
Name Value
Catch 0
Finally 1
Fault 2
Filter 3
Defined at line 79 of file llvm/include/llvm/CodeGen/WinEHFuncInfo.h
enum MCPseudoProbeFlag
Name Value
AddressDelta 0x1
Defined at line 81 of file llvm/include/llvm/MC/MCPseudoProbe.h
enum DebuggerKind
Name Value
Default 0
GDB 1
LLDB 2
SCE 3
DBX 4
Defined at line 81 of file llvm/include/llvm/Target/TargetOptions.h
enum fltNanEncoding
Name Value
IEEE 0
AllOnes 1
NegativeZero 2
Defined at line 81 of file llvm/lib/Support/APFloat.cpp
enum 
Name Value
GIM_Try 0
GIM_SwitchOpcode 1
GIM_SwitchType 2
GIM_RecordInsn 3
GIM_RecordInsnIgnoreCopies 4
GIM_CheckFeatures 5
GIM_CheckOpcode 6
GIM_CheckOpcodeIsEither 7
GIM_CheckNumOperands 8
GIM_CheckNumOperandsLE 9
GIM_CheckNumOperandsGE 10
GIM_CheckI64ImmPredicate 11
GIM_CheckAPIntImmPredicate 12
GIM_CheckAPFloatImmPredicate 13
GIM_CheckImmOperandPredicate 14
GIM_CheckLeafOperandPredicate 15
GIM_CheckAtomicOrdering 16
GIM_CheckAtomicOrderingOrStrongerThan 17
GIM_CheckAtomicOrderingWeakerThan 18
GIM_CheckMemorySizeEqualTo 19
GIM_CheckMemoryAddressSpace 20
GIM_CheckMemoryAlignment 21
GIM_CheckMemorySizeEqualToLLT 22
GIM_CheckMemorySizeLessThanLLT 23
GIM_CheckMemorySizeGreaterThanLLT 24
GIM_CheckIsBuildVectorAllOnes 25
GIM_CheckIsBuildVectorAllZeros 26
GIM_CheckSimplePredicate 27
GIM_CheckCxxInsnPredicate 28
GIM_CheckHasNoUse 29
GIM_CheckHasOneUse 30
GIM_CheckType 31
GIM_RootCheckType 32
GIM_CheckPointerToAny 33
GIM_CheckRegBankForClass 34
GIM_RootCheckRegBankForClass 35
GIM_CheckComplexPattern 36
GIM_CheckConstantInt 37
GIM_CheckConstantInt8 38
GIM_CheckLiteralInt 39
GIM_CheckIntrinsicID 40
GIM_CheckCmpPredicate 41
GIM_CheckIsMBB 42
GIM_CheckIsImm 43
GIM_CheckIsSafeToFold 44
GIM_CheckIsSameOperand 45
GIM_CheckIsSameOperandIgnoreCopies 46
GIM_CheckAllSameOperand 47
GIM_CheckAllSameOperandIgnoreCopies 48
GIM_CheckCanReplaceReg 49
GIM_MIFlags 50
GIM_MIFlagsNot 51
GIM_RecordNamedOperand 52
GIM_RecordRegType 53
GIM_Reject 54
GIR_MutateOpcode 55
GIR_BuildMI 56
GIR_BuildRootMI 57
GIR_BuildConstant 58
GIR_Copy 59
GIR_RootToRootCopy 60
GIR_CopyRemaining 61
GIR_CopyOrAddZeroReg 62
GIR_CopySubReg 63
GIR_AddImplicitDef 64
GIR_AddImplicitUse 65
GIR_AddRegister 66
GIR_AddIntrinsicID 67
GIR_SetImplicitDefDead 68
GIR_SetMIFlags 69
GIR_UnsetMIFlags 70
GIR_CopyMIFlags 71
GIR_AddTempRegister 72
GIR_AddSimpleTempRegister 73
GIR_AddTempSubRegister 74
GIR_AddImm 75
GIR_AddImm8 76
GIR_AddCImm 77
GIR_ComplexRenderer 78
GIR_ComplexSubOperandRenderer 79
GIR_ComplexSubOperandSubRegRenderer 80
GIR_CustomRenderer 81
GIR_DoneWithCustomAction 82
GIR_CustomOperandRenderer 83
GIR_CopyConstantAsSImm 84
GIR_CopyFConstantAsFPImm 85
GIR_ConstrainOperandRC 86
GIR_ConstrainSelectedInstOperands 87
GIR_RootConstrainSelectedInstOperands 88
GIR_MergeMemOperands 89
GIR_EraseFromParent 90
GIR_EraseRootFromParent_Done 91
GIR_MakeTempReg 92
GIR_ReplaceReg 93
GIR_ReplaceRegWithTempReg 94
GIR_Done 95
GIR_Coverage 96
GIU_NumOpcodes 97
Defined at line 81 of file llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
enum CodeGenOptLevel
Name Value
None 0
Less 1
Default 2
Aggressive 3
Defined at line 82 of file llvm/include/llvm/Support/CodeGen.h
enum FeatureIDs
Name Value
li_size 0
stage 1
weight 2
FeatureCount 3
Defined at line 85 of file llvm/lib/CodeGen/MLRegAllocPriorityAdvisor.cpp
enum TimeTraceEventType
Name Value
CompleteEvent 0
InstantEvent 1
AsyncEvent 2
Defined at line 88 of file llvm/include/llvm/Support/TimeProfiler.h
enum MachineTraceStrategy
Name Value
TS_MinInstrCount 0
TS_Local 1
TS_NumStrategies 2
Defined at line 89 of file llvm/include/llvm/CodeGen/MachineTraceMetrics.h
enum InstrProfSectKind
Name Value
IPSK_data 0
IPSK_cnts 1
IPSK_bitmap 2
IPSK_name 3
IPSK_vname 4
IPSK_vals 5
IPSK_vnodes 6
IPSK_vtab 7
IPSK_covmap 8
IPSK_covfun 9
IPSK_covdata 10
IPSK_covname 11
IPSK_covinit 12
Defined at line 91 of file llvm/include/llvm/ProfileData/InstrProf.h
enum GlobalISelAbortMode
Name Value
Disable 0
Enable 1
DisableWithDiag 2
Defined at line 91 of file llvm/include/llvm/Target/TargetOptions.h
enum MachineFunctionDataHotness
Name Value
Unknown 0
Cold 1
Hot 2
Defined at line 94 of file llvm/include/llvm/CodeGen/MachineFunction.h
enum PassDebuggingString
Name Value
EXECUTION_MSG 0
MODIFICATION_MSG 1
FREEING_MSG 2
ON_FUNCTION_MSG 3
ON_MODULE_MSG 4
ON_REGION_MSG 5
ON_LOOP_MSG 6
ON_CG_MSG 7
Defined at line 97 of file llvm/include/llvm/IR/LegacyPassManagers.h
enum SwiftAsyncFramePointerMode
Name Value
DeploymentBased 0
Always 1
Never 2
Defined at line 98 of file llvm/include/llvm/Target/TargetOptions.h
enum IRKind
Name Value
LLVMIR 0
MIR 1
Defined at line 99 of file llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp
enum InlinerFunctionImportStatsOpts
Name Value
No 0
Basic 1
Verbose 2
Defined at line 105 of file llvm/include/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h
enum CGDataMode
Name Value
None 0
Read 1
Write 2
Defined at line 106 of file llvm/include/llvm/CGData/CodeGenData.h
enum CodeObjectVersionKind
Name Value
COV_None 0
COV_2 200
COV_3 300
COV_4 400
COV_5 500
COV_6 600
Defined at line 110 of file llvm/include/llvm/Target/TargetOptions.h
enum CodeGenFileType
Name Value
AssemblyFile 0
ObjectFile 1
Null 2
Defined at line 111 of file llvm/include/llvm/Support/CodeGen.h
enum FramePointerKind
Name Value
None 0
NonLeaf 1
All 2
Reserved 3
NonLeafNoReserve 4
Defined at line 118 of file llvm/include/llvm/Support/CodeGen.h
enum 
Name Value
INVALID_MEMORYACCESS_ID -1U
Defined at line 127 of file llvm/include/llvm/Analysis/MemorySSA.h
enum FeatureIndex
Name Value
sroa_savings 0
sroa_losses 1
load_elimination 2
call_penalty 3
call_argument_setup 4
load_relative_intrinsic 5
lowered_call_arg_setup 6
indirect_call_penalty 7
jump_table_penalty 8
case_cluster_penalty 9
switch_default_dest_penalty 10
switch_penalty 11
unsimplified_common_instructions 12
num_loops 13
dead_blocks 14
simplified_instructions 15
constant_args 16
constant_offset_ptr_args 17
callsite_cost 18
cold_cc_penalty 19
last_call_to_static_bonus 20
is_multiple_blocks 21
nested_inlines 22
nested_inline_cost_estimate 23
threshold 24
callee_basic_block_count 25
callsite_height 26
node_count 27
nr_ctant_params 28
cost_estimate 29
edge_count 30
caller_users 31
caller_conditionally_executed_blocks 32
caller_basic_block_count 33
callee_conditionally_executed_blocks 34
callee_users 35
is_callee_avail_external 36
is_caller_avail_external 37
callee_embedding 38
caller_embedding 39
Defined at line 141 of file llvm/include/llvm/Analysis/InlineModelFeatureMaps.h
enum DINameKind
Name Value
None 0
ShortName 1
LinkageName 2
Defined at line 142 of file llvm/include/llvm/DebugInfo/DIContext.h
enum ConversionResult
Name Value
conversionOK 0
sourceExhausted 1
targetExhausted 2
sourceIllegal 3
Defined at line 149 of file llvm/include/llvm/Support/ConvertUTF.h
enum UWTableKind
Name Value
None 0
Sync 1
Async 2
Default 2
Defined at line 154 of file llvm/include/llvm/Support/CodeGen.h
enum CloneFunctionChangeType
Name Value
LocalChangesOnly 0
GlobalChanges 1
DifferentModule 2
ClonedModule 3
Defined at line 155 of file llvm/include/llvm/Transforms/Utils/Cloning.h
enum ConversionFlags
Name Value
strictConversion 0
lenientConversion 1
Defined at line 156 of file llvm/include/llvm/Support/ConvertUTF.h
enum 
Name Value
InvalidVN ~(uintptr_t)2
Defined at line 158 of file llvm/lib/Transforms/Scalar/GVNHoist.cpp
enum FunctionReturnThunksKind
Name Value
Keep 0
Extern 1
Invalid 2
Defined at line 161 of file llvm/include/llvm/Support/CodeGen.h
enum WinX64EHUnwindV2Mode
Name Value
Disabled 0
BestEffort 1
Required 2
Defined at line 167 of file llvm/include/llvm/Support/CodeGen.h
enum DIDumpTypeCounter
Name Value
DIDT_ID_DebugAbbrev 0
DIDT_ID_DebugAddr 1
DIDT_ID_DebugAranges 2
DIDT_ID_DebugInfo 3
DIDT_ID_DebugTypes 4
DIDT_ID_DebugLine 5
DIDT_ID_DebugLineStr 6
DIDT_ID_DebugLoc 7
DIDT_ID_DebugLoclists 8
DIDT_ID_DebugFrame 9
DIDT_ID_DebugMacro 10
DIDT_ID_DebugNames 11
DIDT_ID_DebugPubnames 12
DIDT_ID_DebugPubtypes 13
DIDT_ID_DebugGnuPubnames 14
DIDT_ID_DebugGnuPubtypes 15
DIDT_ID_DebugRanges 16
DIDT_ID_DebugRnglists 17
DIDT_ID_DebugStr 18
DIDT_ID_DebugStrOffsets 19
DIDT_ID_DebugCUIndex 20
DIDT_ID_DebugTUIndex 21
DIDT_ID_AppleNames 22
DIDT_ID_AppleTypes 23
DIDT_ID_AppleNamespaces 24
DIDT_ID_AppleObjC 25
DIDT_ID_GdbIndex 26
DIDT_ID_UUID 27
DIDT_ID_Count 28
Defined at line 173 of file llvm/include/llvm/DebugInfo/DIContext.h
enum ExplorationDirection
Name Value
BACKWARD 0
FORWARD 1
Defined at line 179 of file llvm/include/llvm/Analysis/MustExecute.h
enum DIDumpType
Name Value
DIDT_Null 0
DIDT_All ~0U
DIDT_DebugAbbrev 1
DIDT_DebugAddr 2
DIDT_DebugAranges 4
DIDT_DebugInfo 8
DIDT_DebugTypes 16
DIDT_DebugLine 32
DIDT_DebugLineStr 64
DIDT_DebugLoc 128
DIDT_DebugLoclists 256
DIDT_DebugFrame 512
DIDT_DebugMacro 1024
DIDT_DebugNames 2048
DIDT_DebugPubnames 4096
DIDT_DebugPubtypes 8192
DIDT_DebugGnuPubnames 16384
DIDT_DebugGnuPubtypes 32768
DIDT_DebugRanges 65536
DIDT_DebugRnglists 131072
DIDT_DebugStr 262144
DIDT_DebugStrOffsets 524288
DIDT_DebugCUIndex 1048576
DIDT_DebugTUIndex 2097152
DIDT_AppleNames 4194304
DIDT_AppleTypes 8388608
DIDT_AppleNamespaces 16777216
DIDT_AppleObjC 33554432
DIDT_GdbIndex 67108864
DIDT_UUID 1 << DIDT_ID_UUID
Defined at line 184 of file llvm/include/llvm/DebugInfo/DIContext.h
enum TailFoldingStyle
Name Value
None 0
Data 1
DataWithoutLaneMask 2
DataAndControlFlow 3
DataAndControlFlowWithoutRuntimeCheck 4
DataWithEVL 5
Defined at line 230 of file llvm/include/llvm/Analysis/TargetTransformInfo.h
enum LEB128Sign
Name Value
Unsigned 0
Signed 1
Defined at line 232 of file llvm/include/llvm/Support/LEB128.h
enum FPClassTest
Name Value
fcNone 0
fcSNan 0x0001
fcQNan 0x0002
fcNegInf 0x0004
fcNegNormal 0x0008
fcNegSubnormal 0x0010
fcNegZero 0x0020
fcPosZero 0x0040
fcPosSubnormal 0x0080
fcPosNormal 0x0100
fcPosInf 0x0200
fcNan fcSNan | fcQNan
fcInf fcPosInf | fcNegInf
fcNormal fcPosNormal | fcNegNormal
fcSubnormal fcPosSubnormal | fcNegSubnormal
fcZero fcPosZero | fcNegZero
fcPosFinite fcPosNormal | fcPosSubnormal | fcPosZero
fcNegFinite fcNegNormal | fcNegSubnormal | fcNegZero
fcFinite fcPosFinite | fcNegFinite
fcPositive fcPosFinite | fcPosInf
fcNegative fcNegFinite | fcNegInf
fcAllFlags fcNan | fcInf | fcFinite
Defined at line 240 of file llvm/include/llvm/ADT/FloatingPointMode.h
enum ThreadPriority
Name Value
Background 0
Low 1
Default 2
Defined at line 270 of file llvm/include/llvm/Support/Threading.h
enum TransformationMode
Name Value
TM_Unspecified 0
TM_Enable 1
TM_Disable 2
TM_Force 0x04
TM_ForcedByUser TM_Enable | TM_Force
TM_SuppressedByUser TM_Disable | TM_Force
Defined at line 284 of file llvm/include/llvm/Transforms/Utils/LoopUtils.h
enum SetThreadPriorityResult
Name Value
FAILURE 0
SUCCESS 1
Defined at line 285 of file llvm/include/llvm/Support/Threading.h
enum ContextWorklistItemType
Name Value
AnalyzeContextInfo 0
UpdateChildPruning 1
UpdatePruning 2
Defined at line 300 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
enum CaptureComponents
Name Value
None 0
AddressIsNull (1 << 0)
Address (1 << 1) | AddressIsNull
ReadProvenance (1 << 2)
Provenance (1 << 3) | ReadProvenance
All Address | Provenance
LLVM_BITMASK_LARGEST_ENUMERATOR Provenance
Defined at line 310 of file llvm/include/llvm/Support/ModRef.h
enum InstrProfValueKind
Name Value
IPVK_IndirectCallTarget 0
IPVK_MemOPSize 1
IPVK_VTableTarget 2
IPVK_First IPVK_IndirectCallTarget
IPVK_Last IPVK_VTableTarget
Defined at line 311 of file llvm/include/llvm/ProfileData/InstrProf.h
enum BitcodeError
Name Value
CorruptedBitcode 1
Defined at line 314 of file llvm/include/llvm/Bitcode/BitcodeReader.h
enum AccelTableKind
Name Value
Default 0
None 1
Apple 2
Dwarf 3
Defined at line 343 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
enum PrevailingType
Name Value
Yes 0
No 1
Unknown 2
Defined at line 371 of file llvm/include/llvm/Transforms/IPO/FunctionImport.h
enum InstrProfKind
Name Value
Unknown 0x0
FrontendInstrumentation 0x1
IRInstrumentation 0x2
FunctionEntryInstrumentation 0x4
ContextSensitive 0x8
SingleByteCoverage 0x10
FunctionEntryOnly 0x20
MemProf 0x40
TemporalProfile 0x80
LoopEntriesInstrumentation 0x100
LLVM_BITMASK_LARGEST_ENUMERATOR LoopEntriesInstrumentation
Defined at line 373 of file llvm/include/llvm/ProfileData/InstrProf.h
enum AllocationType
Name Value
None 0
NotCold 1
Cold 2
Hot 4
All 7
Defined at line 397 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
enum instrprof_error
Name Value
success 0
eof 1
unrecognized_format 2
bad_magic 3
bad_header 4
unsupported_version 5
unsupported_hash_type 6
too_large 7
truncated 8
malformed 9
missing_correlation_info 10
unexpected_correlation_info 11
unable_to_correlate_profile 12
unknown_function 13
invalid_prof 14
hash_mismatch 15
count_mismatch 16
bitmap_mismatch 17
counter_overflow 18
value_site_count_mismatch 19
compress_failed 20
uncompress_failed 21
empty_raw_profile 22
zlib_unavailable 23
raw_profile_version_mismatch 24
counter_value_too_large 25
Defined at line 398 of file llvm/include/llvm/ProfileData/InstrProf.h
enum ChangeStatus
Name Value
CHANGED 0
UNCHANGED 1
Defined at line 496 of file llvm/include/llvm/Transforms/IPO/Attributor.h
enum DepClassTy
Name Value
REQUIRED 0
OPTIONAL 1
NONE 2
Defined at line 506 of file llvm/include/llvm/Transforms/IPO/Attributor.h
enum AccessField
Name Value
Offset 0
Length 1
Defined at line 532 of file llvm/lib/DWP/DWP.cpp
enum ReplaceExitVal
Name Value
NeverRepl 0
OnlyCheapRepl 1
NoHardUse 2
UnusedIndVarInLoop 3
AlwaysRepl 4
Defined at line 554 of file llvm/include/llvm/Transforms/Utils/LoopUtils.h
enum OverflowResult
Name Value
AlwaysOverflowsLow 0
AlwaysOverflowsHigh 1
MayOverflow 2
NeverOverflows 3
Defined at line 622 of file llvm/include/llvm/Analysis/ValueTracking.h
enum SelectPatternFlavor
Name Value
SPF_UNKNOWN 0
SPF_SMIN 1
SPF_UMIN 2
SPF_SMAX 3
SPF_UMAX 4
SPF_FMINNUM 5
SPF_FMAXNUM 6
SPF_ABS 7
SPF_NABS 8
Defined at line 834 of file llvm/include/llvm/Analysis/ValueTracking.h
enum ScalarEpilogueLowering
Name Value
CM_ScalarEpilogueAllowed 0
CM_ScalarEpilogueNotAllowedOptSize 1
CM_ScalarEpilogueNotAllowedLowTripLoop 2
CM_ScalarEpilogueNotNeededUsePredicate 3
CM_ScalarEpilogueNotAllowedUsePredicate 4
Defined at line 839 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
enum SelectPatternNaNBehavior
Name Value
SPNB_NA 0
SPNB_RETURNS_NAN 1
SPNB_RETURNS_OTHER 2
SPNB_RETURNS_ANY 3
Defined at line 848 of file llvm/include/llvm/Analysis/ValueTracking.h
enum GVDAGType
Name Value
GVDT_None 0
GVDT_Fraction 1
GVDT_Integer 2
GVDT_Count 3
Defined at line 1772 of file llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
enum AttributorRunOption
Name Value
NONE 0
MODULE 1 << 0
CGSCC 1 << 1
ALL MODULE | CGSCC
Defined at line 6624 of file llvm/include/llvm/Transforms/IPO/Attributor.h

Inner Classes

Functions

  • template <class T = void *>
    bool shouldReverseIterate ()

    Defined at line 9 of file llvm/include/llvm/Support/ReverseIteration.h

  • bool getNonFoldableAlwaysTrue ()

    Defined at line 15 of file llvm/include/llvm/Support/AlwaysTrue.h

  • void PrintTo (BranchProbability P, ::std::ostream * os)

    Defined at line 16 of file llvm/unittests/Support/BranchProbabilityTest.cpp

  • bool isImmSExti16i8Value (uint64_t Value)

    Defined at line 16 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h

  • void reduceGlobalObjectsDeltaPass (Oracle & O, ReducerWorkItem & Program)

    Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalObjects.cpp

  • void reduceInstructionFlagsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 21 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp

  • void reduceInvokesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 31 of file llvm/tools/llvm-reduce/deltas/ReduceInvokes.cpp

  • void reduceVolatileInstructionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 38 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  • void reduceModuleDataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 17 of file llvm/tools/llvm-reduce/deltas/ReduceModuleData.cpp

  • void runIRPassesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 26 of file llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp

  • void simplifyInstructionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Calls simplifyInstruction in each instruction in functions, and replaces

    their values.

    Defined at line 21 of file llvm/tools/llvm-reduce/deltas/SimplifyInstructions.cpp

  • void stripDebugInfoDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all aliases aren't inside any of the

    desired Chunks.

    Defined at line 17 of file llvm/tools/llvm-reduce/deltas/StripDebugInfo.cpp

  • bool IsOptionRecordsLess (const Record * A, const Record * B)

    Return true of Option record

    is ordered before

    Defined at line 16 of file llvm/utils/TableGen/Common/OptEmitter.cpp

  • Target & getTheX86_32Target ()

    Defined at line 14 of file llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp

  • Target & getTheX86_64Target ()

    Defined at line 18 of file llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp

  • void initializeCodeGenTestPass (PassRegistry & )

    Defined at line 34 of file llvm/unittests/CodeGen/CGPluginTest/Plugin/CodeGenTestPass.cpp

  • const char * getMinimalTypeForRange (uint64_t Range, unsigned int MaxSize)

    Returns the smallest unsigned integer type that can hold the given range.

    MaxSize indicates the largest size of integer to consider (in bits) and only

    supports values of at least 32.

    Defined at line 15 of file llvm/utils/TableGen/Common/Types.cpp

  • void SuppressDiagnosticsOutput (const SMDiagnostic & , void * )

    Defined at line 18 of file llvm/unittests/Support/YAMLParserTest.cpp

  • template <typename FunctionT, typename BlockT>
    void computeEHOnlyBlocks (FunctionT & F, int & EHBlocks)

    Compute a list of blocks that are only reachable via EH paths.

    Defined at line 18 of file llvm/include/llvm/Analysis/EHUtils.h

  • template <typename FunctionT, typename BlockT>
    void computeEHOnlyBlocks (FunctionT & F, DenseSet<BlockT *> & EHBlocks)

    Compute a list of blocks that are only reachable via EH paths.

    Defined at line 18 of file llvm/include/llvm/Analysis/EHUtils.h

  • template <typename StackMapParserT>
    void prettyPrintStackMap (ScopedPrinter & W, const StackMapParserT & SMP)

    Pretty print a stackmap to the given ostream.

    Defined at line 19 of file llvm/tools/llvm-readobj/StackMapPrinter.h

  • template <typename T>
    IllegalCast * cast ()

    Defined at line 20 of file llvm/unittests/Support/Casting.cpp

  • void PrintTo (const BPFunctionNode & Node, std::ostream * OS)

    Defined at line 20 of file llvm/unittests/ProfileData/BPFunctionNodeTest.cpp

  • Type * toVectorTy (Type * Scalar, ElementCount EC)

    A helper function for converting Scalar types to vector types. If

    the incoming type is void, we return void. If the EC represents a

    scalar, we return the scalar type.

    Defined at line 20 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • const std::error_category & cxxdump_category ()

    Defined at line 42 of file llvm/tools/llvm-cxxdump/Error.cpp

  • int findPHICopyInsertPoint (MachineBasicBlock * MBB, MachineBasicBlock * SuccMBB, Register SrcReg)

    findCopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg

    when following the CFG edge to SuccMBB. This needs to be after any def of

    SrcReg, but before any subsequent point where control flow might jump out of

    the basic block.

    Defined at line 20 of file llvm/lib/CodeGen/PHIEliminationUtils.cpp

  • void reduceAliasesDeltaPass (Oracle & O, ReducerWorkItem & Program)

    Removes all aliases aren't inside any of the

    desired Chunks.

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceAliases.cpp

  • void reduceDbgRecordDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 27 of file llvm/tools/llvm-reduce/deltas/ReduceDbgRecords.cpp

  • void reduceFunctionBodiesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all the bodies of defined functions that aren't inside any of the

    desired Chunks.

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp

  • void reduceFunctionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all the Defined Functions

    that aren't inside any of the desired Chunks.

    Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceFunctions.cpp

  • void reduceGlobalValuesDeltaPass (Oracle & O, ReducerWorkItem & Program)

    Defined at line 44 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • void reduceGlobalsInitializersDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all the Initialized GVs that aren't inside the desired Chunks.

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalVarInitializers.cpp

  • void reduceGlobalsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all the GVs that aren't inside the desired Chunks.

    Defined at line 27 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp

  • void reduceInstructionFlagsMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 20 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionFlagsMIR.cpp

  • void reduceInstructionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes out-of-chunk arguments from functions, and modifies their calls

    accordingly. It also removes allocations of out-of-chunk arguments.

    Defined at line 32 of file llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp

  • void reduceTargetFeaturesAttrDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    TODO: We could maybe do better if we did a semantic parse of the attributes

    through MCSubtargetInfo. Features can be flipped on and off in the string,

    some are implied by target-cpu and can't be meaningfully re-added.

    Defined at line 23 of file llvm/tools/llvm-reduce/deltas/ReduceTargetFeaturesAttr.cpp

  • void reduceUsingSimplifyCFGDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 23 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp

  • void sortAndReportDuplicates (MutableArrayRef Records, StringRef ObjectName)

    Sort an array of Records on the "Name" field, and check for records with

    duplicate "Name" field. If duplicates are found, report a fatal error.

    Defined at line 30 of file llvm/utils/TableGen/Common/Utils.cpp

  • void reduceIFuncsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 31 of file llvm/tools/llvm-reduce/deltas/ReduceAliases.cpp

  • void reduceFunctionDataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 32 of file llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp

  • void reduceVirtualRegisterHintsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Remove register allocation hints from virtual registes.

    Defined at line 35 of file llvm/tools/llvm-reduce/deltas/ReduceVirtualRegisters.cpp

  • void reduceIRInstructionReferencesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Remove IR references from instructions (i.e. from memory operands)

    Defined at line 39 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp

  • void BuryPointer (const void * Ptr)

    In tools that will exit soon anyway, going through the process of explicitly

    deallocating resources can be unnecessary - better to leak the resources and

    let the OS clean them up when the process ends. Use this function to ensure

    the memory is not misdiagnosed as an unintentional leak by leak detection

    tools (this is achieved by preserving pointers to the object in a globally

    visible array).

    Defined at line 15 of file llvm/lib/Support/BuryPointer.cpp

  • void reduceSpecialGlobalsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all special globals aren't inside any of the

    desired Chunks.

    Defined at line 28 of file llvm/tools/llvm-reduce/deltas/ReduceSpecialGlobals.cpp

  • int StrCmpOptionName (StringRef A, StringRef B, bool FallbackCaseSensitive)

    Comparison function for Option strings (option names

    &

    prefixes).

    The ordering is *almost* case-insensitive lexicographic, with an exception.

    '

    \

    0' comes at the end of the alphabet instead of the beginning (thus options

    precede any other options which prefix them). Additionally, if two options

    are identical ignoring case, they are ordered according to case sensitive

    ordering if `FallbackCaseSensitive` is true.

    Defined at line 20 of file llvm/lib/Support/OptionStrCmp.cpp

  • cl::OptionCategory & getColorCategory ()

    Defined at line 19 of file llvm/lib/Support/WithColor.cpp

  • bool lowerAtomicCmpXchgInst (AtomicCmpXchgInst * CXI)

    Convert the given Cmpxchg into primitive load and compare.

    Defined at line 22 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp

  • void emitWebAssemblyDisassemblerTables (raw_ostream & OS, ArrayRef<const CodeGenInstruction *> NumberedInstructions)

    Defined at line 25 of file llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp

  • bool isGuard (const User * U)

    Returns true iff

    has semantics of a guard expressed in a form of call

    of llvm.experimental.guard intrinsic.

    Defined at line 18 of file llvm/lib/Analysis/GuardUtils.cpp

  • bool canTrackArgumentsInterprocedurally (Function * F)

    Determine if the values of the given function's arguments can be tracked

    interprocedurally. The value of an argument can be tracked if the function

    has local linkage and its address is not taken.

    Defined at line 19 of file llvm/lib/Analysis/ValueLatticeUtils.cpp

  • KCFIHashAlgorithm parseKCFIHashAlgorithm (StringRef Name)

    Parse a KCFI hash algorithm name.

    Returns xxHash64 if the name is not recognized.

    Defined at line 18 of file llvm/lib/Support/Hash.cpp

  • bool isSafeToDestroyConstant (const Constant * C)

    It is safe to destroy a constant iff it is only used by constants itself.

    Note that constants cannot be cyclic, so this test is pretty easy to

    implement recursively.

    Defined at line 43 of file llvm/lib/Transforms/Utils/GlobalStatus.cpp

  • bool lowerUnaryVectorIntrinsicAsLoop (Module & M, CallInst * CI)

    Lower

    as a loop.

    is a unary intrinsic with a vector argument and

    is deleted and replaced with a loop.

    Defined at line 16 of file llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp

  • void describeFuzzerIntOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Getters for the default sets of operations, per general category.

    @

    {

    Defined at line 18 of file llvm/lib/FuzzMutate/Operations.cpp

  • bool TableGenParseFile (SourceMgr & InputSrcMgr, RecordKeeper & Records)

    Parse the TableGen file defined within the main buffer of the given

    SourceMgr. On success, populates the provided RecordKeeper with the parsed

    records and returns false. On failure, returns true.

    NOTE: TableGen currently relies on global state within a given parser

    invocation, so this function is not thread-safe.

    Defined at line 17 of file llvm/lib/TableGen/Parser.cpp

  • Value * getDefaultValue (Type * T)

    Defined at line 28 of file llvm/tools/llvm-reduce/deltas/Utils.cpp

  • uint64_t getNumOfCalls (const Function & CallerFunction, const Function & CalledFunction)

    Returns number of calls of calledFunction by callerFunction.

    Defined at line 40 of file llvm/lib/Analysis/HeatUtils.cpp

  • bool CheckBitcodeOutputToConsole (raw_ostream & stream_to_check)

    Determine if the raw_ostream provided is connected to a terminal. If so,

    generate a warning message to errs() advising against display of bitcode

    and return true. Otherwise just return false.

    Check for output written to a console

    Defined at line 18 of file llvm/lib/Support/SystemUtils.cpp

  • void initializeTransformUtils (PassRegistry & )

    Initialize all passes linked into the TransformUtils library.

    Defined at line 22 of file llvm/lib/Transforms/Utils/Utils.cpp

  • void initWithColorOptions ()

    Defined at line 34 of file llvm/lib/Support/WithColor.cpp

  • bool hasAliasUse (Function & F)

    Defined at line 41 of file llvm/tools/llvm-reduce/deltas/Utils.cpp

  • int StrCmpOptionPrefixes (ArrayRef APrefixes, ArrayRef BPrefixes)

    Comparison function for Option prefixes.

    Defined at line 35 of file llvm/lib/Support/OptionStrCmp.cpp

  • bool CC_X86 (unsigned int ValNo, MVT ValVT, MVT LocVT, LocInfo LocInfo, ArgFlagsTy ArgFlags, Type * OrigTy, CCState & State)

    Defined at line of file

  • void parseFuzzerCLOpts (int ArgC, char *[] ArgV)

    Parse cl::opts from a fuzz target commandline.

    This handles all arguments after -ignore_remaining_args=1 as cl::opts.

    Defined at line 18 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp

  • StringRef stringifyKCFIHashAlgorithm (KCFIHashAlgorithm Algorithm)

    Convert a KCFI hash algorithm enum to its string representation.

    Defined at line 25 of file llvm/lib/Support/Hash.cpp

  • std::pair<Value *, Value *> buildCmpXchgValue (IRBuilderBase & Builder, Value * Ptr, Value * Cmp, Value * Val, Align Alignment)

    Emit IR to implement the given cmpxchg operation on values in registers,

    returning the new value.

    Defined at line 40 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp

  • bool isWidenableCondition (const Value * V)

    Returns true iff

    has semantics of llvm.experimental.widenable.condition

    call

    Defined at line 22 of file llvm/lib/Analysis/GuardUtils.cpp

  • StringRef machineToStr (MachineTypes MT)

    Returns a user-readable string for ARMNT, ARM64, AMD64, I386.

    Other MachineTypes values must not be passed in.

    Defined at line 36 of file llvm/lib/Object/WindowsMachineFlag.cpp

  • void initRandomSeedOptions ()

    Defined at line 43 of file llvm/lib/Support/RandomNumberGenerator.cpp

  • void PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize)

    PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for

    printing statistics.

    Defined at line 31 of file llvm/lib/Support/Allocator.cpp

  • void getSipHash_2_4_64 (ArrayRef<uint8_t> In, const uint8_t (&)[16] K, uint8_t (&)[8] Out)

    Computes a SipHash-2-4 64-bit result.

    Defined at line 28 of file llvm/lib/Support/SipHash.cpp

  • void makeGuardControlFlowExplicit (Function * DeoptIntrinsic, CallInst * Guard, bool UseWC)

    Splits control flow at point of

    replacing it with explicit branch

    by the condition of guard's first argument. The taken branch then goes to

    the block that contains

    successors, and the non-taken branch

    goes to a newly-created deopt block that contains a sole call of the

    deoptimize function

    If 'UseWC' is set, preserve the

    widenable nature of the guard by lowering to equivelent form. If not set,

    lower to a form without widenable semantics.

    Defined at line 30 of file llvm/lib/Transforms/Utils/GuardUtils.cpp

  • bool shouldOptimizeForSize (const MachineFunction * MF, ProfileSummaryInfo * PSI, const MachineBlockFrequencyInfo * BFI, PGSOQueryType QueryType)

    Returns true if machine function

    is suggested to be size-optimized

    based on the profile.

    Defined at line 27 of file llvm/lib/CodeGen/MachineSizeOpts.cpp

  • LLT getLLTForType (Type & Ty, const DataLayout & DL)

    Construct a low-level type based on an LLVM type.

    Defined at line 20 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp

  • void initializeScalarOpts (PassRegistry & )

    Initialize all passes linked into the ScalarOpts library.

    Defined at line 21 of file llvm/lib/Transforms/Scalar/Scalar.cpp

  • bool canTrackReturnsInterprocedurally (Function * F)

    Determine if the values of the given function's returns can be tracked

    interprocedurally. Return values can be tracked if the function has an

    exact definition and it doesn't have the "naked" attribute. Naked functions

    may contain assembly code that returns untrackable values.

    Defined at line 23 of file llvm/lib/Analysis/ValueLatticeUtils.cpp

  • void dumpBytes (ArrayRef<uint8_t> Bytes, raw_ostream & OS)

    Convert `Bytes' to a hex string and output to `OS'

    Defined at line 25 of file llvm/lib/MC/MCInstPrinter.cpp

  • Value * emitGEPOffset (IRBuilderBase * Builder, const DataLayout & DL, User * GEP, bool NoAssumptions)

    Given a getelementptr instruction/constantexpr, emit the code necessary to

    compute the offset from the base pointer (without adding in the base

    pointer). Return the result as a signed integer of intptr size.

    When NoAssumptions is true, no assumptions about index computation not

    overflowing is made.

    Defined at line 22 of file llvm/lib/Analysis/Local.cpp

  • void DecodeINSERTPSMask (unsigned int Imm, SmallVectorImpl<int> & ShuffleMask, bool SrcIsMem)

    Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.

    Defined at line 26 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • uintptr_t getStackPointer ()

    The value is not guaranteed to point to anything specific. It can be used to

    estimate how much stack space has been used since the previous call.

    Defined at line 27 of file llvm/lib/Support/ProgramStack.cpp

  • uint32_t getKCFITypeID (StringRef MangledTypeName, KCFIHashAlgorithm Algorithm)

    Compute KCFI type ID from mangled type name.

    The algorithm can be xxHash64 or FNV-1a.

    Defined at line 35 of file llvm/lib/Support/Hash.cpp

  • bool isWidenableBranch (const User * U)

    Returns true iff

    is a widenable branch (that is,

    extractWidenableCondition returns widenable condition).

    Defined at line 26 of file llvm/lib/Analysis/GuardUtils.cpp

  • void initializeVectorization (PassRegistry & )

    Initialize all passes linked into the Vectorization library.

    Defined at line 21 of file llvm/lib/Transforms/Vectorize/Vectorize.cpp

  • MachineTypes getMachineType (StringRef S)

    Maps /machine: arguments to a MachineTypes value.

    Only returns ARMNT, ARM64, AMD64, I386, or IMAGE_FILE_MACHINE_UNKNOWN.

    Defined at line 23 of file llvm/lib/Object/WindowsMachineFlag.cpp

  • unsigned int parseSDPatternOperatorProperties (const Record * R)

    Defined at line 16 of file llvm/utils/TableGen/Basic/SDNodeProperties.cpp

  • void getSipHash_2_4_128 (ArrayRef<uint8_t> In, const uint8_t (&)[16] K, uint8_t (&)[16] Out)

    Computes a SipHash-2-4 128-bit result.

    Defined at line 33 of file llvm/lib/Support/SipHash.cpp

  • void invokeGlobalTargetPassConfigCallbacks (TargetMachine & TM, PassManagerBase & PM, TargetPassConfig * PassConfig)

    Defined at line 21 of file llvm/lib/Target/RegisterTargetPassConfigCallback.cpp

  • Type * toVectorizedStructTy (StructType * StructTy, ElementCount EC)

    A helper for converting structs of scalar types to structs of vector types.

    Note:

    - If

    is scalar,

    is returned unchanged

    - Only unpacked literal struct types are supported

    Defined at line 16 of file llvm/lib/IR/VectorTypeUtils.cpp

  • MachineBasicBlock * PeelSingleBlockLoop (LoopPeelDirection Direction, MachineBasicBlock * Loop, MachineRegisterInfo & MRI, const TargetInstrInfo * TII)

    Peels a single block loop. Loop must have two successors, one of which

    must be itself. Similarly it must have two predecessors, one of which must

    be itself.

    The loop block is copied and inserted into the CFG such that two copies of

    the loop follow on from each other. The copy is inserted either before or

    after the loop based on Direction.

    Phis are updated and an unconditional branch inserted at the end of the

    clone so as to execute a single iteration.

    The trip count of Loop is not updated.

    Defined at line 26 of file llvm/lib/CodeGen/MachineLoopUtils.cpp

  • bool shouldOptimizeForSize (const MachineBasicBlock * MBB, ProfileSummaryInfo * PSI, const MachineBlockFrequencyInfo * MBFI, PGSOQueryType QueryType)

    Returns true if machine basic block

    is suggested to be size-optimized

    based on the profile.

    Defined at line 36 of file llvm/lib/CodeGen/MachineSizeOpts.cpp

  • bool canTrackGlobalVariableInterprocedurally (GlobalVariable * GV)

    Determine if the value maintained in the given global variable can be

    tracked interprocedurally. A value can be tracked if the global variable

    has local linkage and is only used by non-volatile loads and stores.

    Defined at line 27 of file llvm/lib/Analysis/ValueLatticeUtils.cpp

  • void FindFunctionBackedges (const Function & F, SmallVectorImpl<std::pair<const BasicBlock *, const BasicBlock *>> & Result)

    Analyze the specified function to find all of the loop backedges in the

    function and return them. This is a relatively cheap (compared to

    computing dominators and loop info) analysis.

    The output is added to Result, as pairs of

    <from

    ,to> edge info.

    Defined at line 35 of file llvm/lib/Analysis/CFG.cpp

  • bool isGuardAsWidenableBranch (const User * U)

    Returns true iff

    has semantics of a guard expressed in a form of a

    widenable conditional branch to deopt block.

    Defined at line 33 of file llvm/lib/Analysis/GuardUtils.cpp

  • unsigned int getDefaultStackSize ()

    Based on

    or the equivalent.

    Defined at line 44 of file llvm/lib/Support/ProgramStack.cpp

  • bool checkIfAlreadyInstrumented (Module & M, StringRef Flag)

    Check if module has flag attached, if not add the flag.

    Defined at line 28 of file llvm/lib/Transforms/Utils/Instrumentation.cpp

  • basic_string getModeName (unsigned int Mode)

    Defined at line 27 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp

  • AArch64BuildAttrSubsections extractBuildAttributesSubsections (const llvm::AArch64AttributeParser & )

    Defined at line 24 of file llvm/lib/Support/AArch64AttributeParser.cpp

  • unique_ptr getLazyIRModule (unique_ptr Buffer, SMDiagnostic & Err, LLVMContext & Context, bool ShouldLazyLoadMetadata)

    If the given MemoryBuffer holds a bitcode image, return a Module

    for it which does lazy deserialization of function bodies. Otherwise,

    attempt to parse it as LLVM Assembly and return a fully populated

    Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode

    reader to optionally enable lazy metadata loading. This takes ownership

    of

    Defined at line 34 of file llvm/lib/IRReader/IRReader.cpp

  • Type * toScalarizedStructTy (StructType * StructTy)

    A helper for converting structs of vector types to structs of scalar types.

    Note: Only unpacked literal struct types are supported.

    Defined at line 32 of file llvm/lib/IR/VectorTypeUtils.cpp

  • template <typename T>
    SaveAndRestore<T> <deduction guide for SaveAndRestore> (T & )

    User-defined CTAD guides.

    Defined at line of file

  • bool isCheckForZeroAndMulWithOverflow (Value * Op0, Value * Op1, bool IsAnd, Use *& Y)

    Match one of the patterns up to the select/logic op:

    %Op0 = icmp ne i4 %X, 0

    %Agg = call { i4, i1 }

    .[us]mul.with.overflow.i4(i4 %X, i4 %Y)

    %Op1 = extractvalue { i4, i1 } %Agg, 1

    %ret = select i1 %Op0, i1 %Op1, i1 false / %ret = and i1 %Op0, %Op1

    %Op0 = icmp eq i4 %X, 0

    %Agg = call { i4, i1 }

    .[us]mul.with.overflow.i4(i4 %X, i4 %Y)

    %NotOp1 = extractvalue { i4, i1 } %Agg, 1

    %Op1 = xor i1 %NotOp1, true

    %ret = select i1 %Op0, i1 true, i1 %Op1 / %ret = or i1 %Op0, %Op1

    Callers are expected to align that with the operands of the select/logic.

    IsAnd is set to true if the Op0 and Op1 are used as the first pattern.

    If Op0 and Op1 match one of the patterns above, return true and fill Y's

    use.

    Defined at line 21 of file llvm/lib/Analysis/OverflowInstAnalysis.cpp

  • void handleExecNameEncodedBEOpts (StringRef ExecName)

    Handle backend options that are encoded in the executable name.

    Parses some common backend options out of a specially crafted executable

    name (argv[0]). For example, a name like llvm-foo-fuzzer--aarch64-gisel

    might set up an AArch64 triple and the Global ISel selector. This should be

    called *before* parseFuzzerCLOpts if calling both.

    This is meant to be used for environments like OSS-Fuzz that aren't capable

    of passing in command line arguments in the normal way.

    Defined at line 32 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp

  • void initializeIPO (PassRegistry & )

    Initialize all passes linked into the IPO library.

    Defined at line 19 of file llvm/lib/Transforms/IPO/IPO.cpp

  • template <typename T>
    SaveAndRestore<T> <deduction guide for SaveAndRestore> (T & , const T & )

    Defined at line of file

  • template <typename T>
    SaveAndRestore<T> <deduction guide for SaveAndRestore> (T & , T && )

    Defined at line of file

  • uint64_t getStableSipHash (StringRef Str)

    Compute a stable 64-bit hash of the given string.

    The exact algorithm is the little-endian interpretation of the

    non-doubled (i.e. 64-bit) result of applying a SipHash-2-4 using

    a specific seed value which can be found in the source.

    Defined at line 39 of file llvm/lib/Support/SipHash.cpp

  • bool isVectorizedStructTy (StructType * StructTy)

    Returns true if `StructTy` is an unpacked literal struct where all elements

    are vectors of matching element count. This does not include empty structs.

    Defined at line 44 of file llvm/lib/IR/VectorTypeUtils.cpp

  • void initializeAnalysis (PassRegistry & )

    Initialize all passes linked into the Analysis library.

    Defined at line 20 of file llvm/lib/Analysis/Analysis.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DWARFLocationExpression & Loc)

    Defined at line 15 of file llvm/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp

  • bool hasAttributeInAssume (AssumeInst & Assume, Value * IsOn, StringRef AttrName, uint64_t * ArgVal)

    Query the operand bundle of an llvm.assume to find a single attribute of

    the specified kind applied on a specified Value.

    This has a non-constant complexity. It should only be used when a single

    attribute is going to be queried.

    Return true iff the queried attribute was found.

    If ArgVal is set. the argument will be stored to ArgVal.

    Defined at line 43 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • EHPersonality classifyEHPersonality (const Value * Pers)

    See if the given exception handling personality function is one

    that we understand. If so, return a description of it; otherwise return

    Unknown.

    Defined at line 23 of file llvm/lib/IR/EHPersonalities.cpp

  • void initializeCodeGen (PassRegistry & )

    Initialize all passes linked into the CodeGen library.

    Defined at line 20 of file llvm/lib/CodeGen/CodeGen.cpp

  • template <typename Callable>
    scope_exit<Callable> <deduction guide for scope_exit> (Callable )

    Defined at line of file

  • optional getAllocTokenModeFromString (StringRef Name)

    Returns the AllocTokenMode from its canonical string name; if an invalid

    name was provided returns nullopt.

    Defined at line 20 of file llvm/lib/Support/AllocToken.cpp

  • unsigned int getICmpCode (Predicate Pred)

    Encode a icmp predicate into a three bit mask. These bits are carefully

    arranged to allow folding of expressions such as:

    (A

    <

    B) | (A > B) --> (A != B)

    Note that this is only valid if the first and second predicates have the

    same sign. It is illegal to do: (A u

    <

    B) | (A s> B)

    Three bits are used to represent the condition, as follows:

    0 A > B

    1 A == B

    2 A

    <

    B

    <

    => Value Definition

    000 0 Always false

    001 1 A > B

    010 2 A == B

    011 3 A >= B

    100 4 A

    <

    B

    101 5 A != B

    110 6 A

    <

    = B

    111 7 Always true

    Defined at line 21 of file llvm/lib/Analysis/CmpInstAnalysis.cpp

  • unsigned int ComputeLinearIndex (Type * Ty, const unsigned int * Indices, const unsigned int * IndicesEnd, unsigned int CurIndex)

    Compute the linearized index of a member in a nested

    aggregate/struct/array.

    Given an LLVM IR aggregate type and a sequence of insertvalue or

    extractvalue indices that identify a member, return the linearized index of

    the start of the member, i.e the number of element in memory before the

    sought one. This is disconnected from the number of bytes.

    Parameters

    Ty is the type indexed by
    Indices is an optional pointer in the indices list to the current index.
    IndicesEnd is the end of the indices list.
    CurIndex is the current index in the recursion.

    Defined at line 33 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeGlobalISel (PassRegistry & )

    Initialize all passes linked into the GlobalISel library.

    Defined at line 17 of file llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp

  • std::ostream & operator<< (std::ostream & OS, LLT Ty)

    Defined at line 12 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.cpp

  • std::optional<RoundingMode> convertStrToRoundingMode (StringRef )

    Returns a valid RoundingMode enumerator when given a string

    that is valid as input in constrained intrinsic rounding mode

    metadata.

    Defined at line 24 of file llvm/lib/IR/FPEnv.cpp

  • StringRef getAllocTokenModeAsString (AllocTokenMode Mode)

    Returns the canonical string name for the given AllocTokenMode.

    Defined at line 31 of file llvm/lib/Support/AllocToken.cpp

  • void initializeTarget (PassRegistry & )

    Initialize all passes linked into the CodeGen library.

    Defined at line 35 of file llvm/lib/Target/Target.cpp

  • ModulePass * createBarrierNoopPass ()

    ===----------------------------------------------------------------------===//

    createBarrierNoopPass - This pass is purely a module pass barrier in a pass

    manager.

    Defined at line 43 of file llvm/lib/Transforms/IPO/BarrierNoopPass.cpp

  • std::ostream & operator<< (std::ostream & OS, const MachineFunction & MF)

    Defined at line 21 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.cpp

  • std::unique_ptr<Module> CloneModule (const Module & M)

    Return an exact copy of the specified module

    Defined at line 40 of file llvm/lib/Transforms/Utils/CloneModule.cpp

  • optional convertRoundingModeToStr (RoundingMode )

    For any RoundingMode enumerator, returns a string valid as input in

    constrained intrinsic rounding mode metadata.

    Defined at line 38 of file llvm/lib/IR/FPEnv.cpp

  • int CloneModule (const Module & M, int & VMap)

    Defined at line of file

  • Constant * getPredForICmpCode (unsigned int Code, bool Sign, Type * OpTy, CmpInst::Predicate & Pred)

    This is the complement of getICmpCode. It turns a predicate code into

    either a constant true or false or the predicate for a new ICmp.

    The sign is passed in to determine which kind of predicate to use in the

    new ICmp instruction.

    Non-NULL return value will be a true or false constant.

    NULL return means a new ICmp is needed. The predicate is output in Pred.

    Defined at line 40 of file llvm/lib/Analysis/CmpInstAnalysis.cpp

  • raw_ostream & operator<< (raw_ostream & OS, ModRefInfo MR)

    Debug print ModRefInfo.

    Defined at line 19 of file llvm/lib/Support/ModRef.cpp

  • Error decodeBase64 (StringRef Input, std::vector<char> & Output)

    Defined at line 37 of file llvm/lib/Support/Base64.cpp

  • void initializeBasicBlockSectionsProfileReaderWrapperPassPass (PassRegistry & )

    Defined at line 35 of file llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp

  • int CloneModule (const Module & M, int & VMap, function_ref<bool (const GlobalValue *)> ShouldCloneDefinition)

    Return a copy of the specified module. The ShouldCloneDefinition function

    controls whether a specific GlobalValue's definition is cloned. If the

    function returns false, the module copy will contain an external reference

    in place of the global definition.

    Defined at line of file

  • template <typename Container>
    iterator_range<llvm::detail::IterOfRange<Container>> <deduction guide for iterator_range> (Container && )

    Defined at line of file

  • void initializeMachineBlockHashInfoPass (PassRegistry & )

    Defined at line 45 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp

  • StringRef insertStrRef (StringRef S)

    Copies a StringRef into a static pool to preserve it.

    FIXME: Use UniqueStringSaver instead.

    Defined at line 14 of file llvm/utils/TableGen/Common/GlobalISel/CombinerUtils.cpp

  • void * allocate_buffer (size_t Size, size_t Alignment)

    Allocate a buffer of memory with the given size and alignment.

    When the compiler supports aligned operator new, this will use it to

    handle even over-aligned allocations.

    However, this doesn't make any attempt to leverage the fancier techniques

    like posix_memalign due to portability. It is mostly intended to allow

    compatibility with platforms that, after aligned allocation was added, use

    reduced default alignment.

    Defined at line 14 of file llvm/lib/Support/MemAlloc.cpp

  • basic_string demangle (basic_string_view MangledName)

    Attempt to demangle a string using different demangling schemes.

    The function uses heuristics to determine which demangling scheme to use.

    Parameters

    MangledName - reference to string to demangle.

    Defined at line 20 of file llvm/lib/Demangle/Demangle.cpp

  • file_magic identify_magic (StringRef magic)

    Identify the magic in magic.

    Defined at line 33 of file llvm/lib/BinaryFormat/Magic.cpp

  • void deallocate_buffer (void * Ptr, size_t Size, size_t Alignment)

    Deallocate a buffer of memory with the given size and alignment.

    If supported, this will used the sized delete operator. Also if supported,

    this will pass the alignment to the delete operator.

    The pointer must have been allocated with the corresponding new operator,

    most likely using the above helper.

    Defined at line 27 of file llvm/lib/Support/MemAlloc.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DWARFAddressRange & R)

    Defined at line 30 of file llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp

  • uint32_t serializeSectionKind (DWARFSectionKind Kind, unsigned int IndexVersion)

    Convert the internal value for a section kind to an on-disk value.

    The conversion depends on the version of the index section.

    IndexVersion is expected to be either 2 for pre-standard GNU proposal

    or 5 for DWARFv5 package file.

    Defined at line 42 of file llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const HexNumber & Value)

    Defined at line 14 of file llvm/lib/Support/ScopedPrinter.cpp

  • bool streamFile (HTTPServerRequest & Request, StringRef FilePath)

    Sets the response to stream the file at FilePath, if available, and

    otherwise an HTTP 404 error response.

    Defined at line 37 of file llvm/lib/Debuginfod/HTTPServer.cpp

  • template <typename PassT>
    MFPropsModifier<PassT> <deduction guide for MFPropsModifier> (PassT & P, MachineFunction & MF)

    Additional deduction guide to suppress warning.

    Defined at line of file

  • void initializeDominanceFrontierWrapperPassPass (PassRegistry & )

    Defined at line 35 of file llvm/lib/Analysis/DominanceFrontier.cpp

  • MCStreamer * createSPIRVStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)

    Defined at line 19 of file llvm/lib/MC/MCSPIRVStreamer.cpp

  • template <typename T>
    void BuryPointer (std::unique_ptr<T> Ptr)

    Defined at line 24 of file llvm/include/llvm/Support/BuryPointer.h

  • raw_ostream & operator<< (raw_ostream & OS, LegacyLegalizeAction Action)

    Defined at line 28 of file llvm/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, LegalizeAction Action)

    Defined at line 43 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

  • void initializeEdgeBundlesWrapperLegacyPass (PassRegistry & )

    Defined at line 31 of file llvm/lib/CodeGen/EdgeBundles.cpp

  • MCStreamer * createDXContainerStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)

    Defined at line 19 of file llvm/lib/MC/MCDXContainerStreamer.cpp

  • Expected localCache (const Twine & CacheNameRef, const Twine & TempFilePrefixRef, const Twine & CacheDirectoryPathRef, function AddBuffer)

    Create a local file system cache which uses the given cache name, temporary

    file prefix, cache directory and file callback. This function does not

    immediately create the cache directory if it does not yet exist; this is

    done lazily the first time a file is added. The cache name appears in error

    messages for errors during caching. The temporary file prefix is used in the

    temporary file naming scheme used when writing files atomically.

    Defined at line 29 of file llvm/lib/Support/Caching.cpp

  • MCRelocationInfo * createMCRelocationInfo (const Triple & TT, MCContext & Ctx)

    Defined at line 27 of file llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp

  • void initializeFuncletLayoutPass (PassRegistry & )

    Defined at line 39 of file llvm/lib/CodeGen/FuncletLayout.cpp

  • MCAsmParserExtension * createGOFFAsmParser ()

    Defined at line 35 of file llvm/lib/MC/MCParser/GOFFAsmParser.cpp

  • BasicBlock * CloneBasicBlock (const BasicBlock * BB, int & VMap, const Twine & NameSuffix, Function * F, ClonedCodeInfo * CodeInfo, bool MapAtoms)

    Return a copy of the specified basic block, but without

    embedding the block into a particular function. The block returned is an

    exact copy of the specified basic block, without any remapping having been

    performed. Because of this, this is only suitable for applications where

    the basic block will be inserted into the same function that it was cloned

    from (loop unrolling would use this, for example).

    Also, note that this function makes a direct copy of the basic block, and

    can thus produce illegal LLVM code. In particular, it will copy any PHI

    nodes from the original block, even though there are no predecessors for the

    newly cloned block (thus, phi nodes will have to be updated). Also, this

    block will branch to the old successors of the original block: these

    successors will have to have any PHI nodes updated to account for the new

    incoming edges.

    The correlation between instructions in the source and result basic blocks

    is recorded in the VMap map.

    If you have a particular suffix you'd like to use to add to any cloned

    names, specify it as the optional third parameter.

    If you would like the basic block to be auto-inserted into the end of a

    function, you can specify it as the optional fourth parameter.

    If you would like to collect additional information about the cloned

    function, you can specify a ClonedCodeInfo object with the optional fifth

    parameter.

    indicates whether source location atoms should be mapped for

    later remapping. Must be true when you duplicate a code path and a source

    location is intended to appear twice in the generated instructions. Can be

    set to false if you are transplanting code from one place to another.

    Setting true (default) is always safe (won't produce incorrect debug info)

    but is sometimes unnecessary, causing extra work that could be avoided by

    setting the parameter to false.

    Defined at line of file

  • pair performOptimizedStructLayout (MutableArrayRef Fields)

    Compute a layout for a struct containing the given fields, making a

    best-effort attempt to minimize the amount of space required.

    Two features are supported which require a more careful solution

    than the well-known "sort by decreasing alignment" solution:

    - Fields may be assigned a fixed offset in the layout. If there are

    gaps among the fixed-offset fields, the algorithm may attempt

    to allocate flexible-offset fields into those gaps. If that's

    undesirable, the caller should "block out" those gaps by e.g.

    just creating a single fixed-offset field that represents the

    entire "header".

    - The size of a field is not required to be a multiple of, or even

    greater than, the field's required alignment. The only constraint

    on fields is that they must not be zero-sized.

    To simplify the implementation, any fixed-offset fields in the

    layout must appear at the start of the field array, and they must

    be ordered by increasing offset.

    The algorithm will produce a guaranteed-minimal layout with no

    interior padding in the following "C-style" case:

    - every field's size is a multiple of its required alignment and

    - either no fields have initially fixed offsets, or the fixed-offset

    fields have no interior padding and end at an offset that is at

    least as aligned as all the flexible-offset fields.

    Otherwise, while the algorithm will make a best-effort attempt to

    avoid padding, it cannot guarantee a minimal layout, as there is

    no known efficient algorithm for doing so.

    The layout produced by this algorithm may not be stable across LLVM

    releases. Do not use this anywhere where ABI stability is required.

    Flexible-offset fields with the same size and alignment will be ordered

    the same way they were in the initial array. Otherwise the current

    algorithm makes no effort to preserve the initial order of

    flexible-offset fields.

    On return, all fields will have been assigned a fixed offset, and the

    array will be sorted in order of ascending offsets. Note that this

    means that the fixed-offset fields may no longer form a strict prefix

    if there's any padding before they end.

    The return value is the total size of the struct and its required

    alignment. Note that the total size is not rounded up to a multiple

    of the required alignment; clients which require this can do so easily.

    Defined at line 42 of file llvm/lib/Support/OptimizedStructLayout.cpp

  • Value * FindAvailableLoadedValue (LoadInst * Load, BasicBlock * ScanBB, int & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)

    Scan backwards to see if we have the value of the given load available

    locally within a small number of instructions.

    You can use this function to scan across multiple blocks: after you call

    this function, if ScanFrom points at the beginning of the block, it's safe

    to continue scanning the predecessors.

    Note that performing load CSE requires special care to make sure the

    metadata is set appropriately. In particular, aliasing metadata needs

    to be merged. (This doesn't matter for store-to-load forwarding because

    the only relevant load gets deleted.)

    Parameters

    Load The load we want to replace.
    ScanBB The basic block to scan.
    ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.
    MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.
    AA Optional pointer to alias analysis, to make the scan more precise.
    IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.

    Defined at line of file

  • unique_ptr getGCStrategy (StringRef Name)

    Lookup the GCStrategy object associated with the given gc name.

    Defined at line 24 of file llvm/lib/IR/GCStrategy.cpp

  • Function * CloneFunction (Function * F, int & VMap, ClonedCodeInfo * CodeInfo)

    Return a copy of the specified function and add it to that

    function's module. Also, any references specified in the VMap are changed

    to refer to their mapped value instead of the original one. If any of the

    arguments to the function are in the VMap, the arguments are deleted from

    the resultant function. The VMap is updated to include mappings from all of

    the instructions and basicblocks in the function from their old to new

    values. The final argument captures information about the cloned code if

    non-null.

    Defined at line of file

  • void initializeLazyBlockFrequencyInfoPassPass (PassRegistry & )

    Defined at line 30 of file llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp

  • void initializeLazyBranchProbabilityInfoPassPass (PassRegistry & )

    Defined at line 30 of file llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const FaultMapParser::FunctionFaultInfoAccessor & )

    Defined at line 32 of file llvm/lib/Object/FaultMapParser.cpp

  • void initializeLazyMachineBlockFrequencyInfoPassPass (PassRegistry & )

    Defined at line 28 of file llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const FaultMapParser::FunctionInfoAccessor & )

    Defined at line 42 of file llvm/lib/Object/FaultMapParser.cpp

  • void initializeGISelCSEAnalysisWrapperPassPass (PassRegistry & )

    Defined at line 26 of file llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp

  • void initializeLiveRegMatrixWrapperLegacyPass (PassRegistry & )

    Defined at line 43 of file llvm/lib/CodeGen/LiveRegMatrix.cpp

  • void initializeLiveStacksWrapperLegacyPass (PassRegistry & )

    Defined at line 27 of file llvm/lib/CodeGen/LiveStacks.cpp

  • bool parseAssemblyInto (MemoryBufferRef F, Module * M, ModuleSummaryIndex * Index, SMDiagnostic & Err, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback, AsmParserContext * ParserContext)

    This function is the low-level interface to the LLVM Assembly Parser.

    This is kept as an independent function instead of being inlined into

    parseAssembly for the convenience of interactive users that want to add

    recently parsed bits to an existing module.

    Parameters

    F The MemoryBuffer containing assembly
    M The module to add data to.
    Index The index to add data to.
    Err Error result info.
    Slots The optional slot mapping that will be initialized during parsing.
    DataLayoutCallback Override datalayout in the llvm assembly.

    Returns

    true on error.

    Defined at line 40 of file llvm/lib/AsmParser/Parser.cpp

  • void initializeLocalizerPass (PassRegistry & )

    Defined at line 32 of file llvm/lib/CodeGen/GlobalISel/Localizer.cpp

  • void CloneFunctionInto (Function * NewFunc, const Function * OldFunc, int & VMap, CloneFunctionChangeType Changes, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)

    Clone OldFunc into NewFunc, transforming the old arguments into references

    to VMap values. Note that if NewFunc already has basic blocks, the ones

    cloned into it will be added to the end of the function. This function

    fills in a list of return instructions, and can optionally remap types

    and/or append the specified suffix to all values cloned.

    If

    is

    VMap is

    required to contain no non-identity GlobalValue mappings. Otherwise,

    referenced metadata will be cloned.

    If

    is less than

    indicating cloning into the same module (even if it's LocalChangesOnly), if

    debug info metadata transitively references a

    it will be

    cloned, effectively upgrading

    to GlobalChanges while suppressing

    cloning of types and compile units.

    If

    is

    the new

    module's

    will get updated with any newly created compile

    units. (

    leaves that work for the

    caller.)

    FIXME: Consider simplifying this function by splitting out

    and expecting / updating callers to call it

    first when / how it's needed.

    Defined at line of file

  • template <typename T, typename GenT>
    T uniform (GenT & Gen, T Min, T Max)

    Return a uniformly distributed random value between

    and

    Defined at line 21 of file llvm/include/llvm/FuzzMutate/Random.h

  • bool isImmSExti32i8Value (uint64_t Value)

    Defined at line 21 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h

  • void exitWithError (const Twine & Message, StringRef Whence, StringRef Hint)

    Defined at line 21 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h

  • std::ostream & operator<< (std::ostream & OS, LegalizeAction Act)

    Defined at line 21 of file llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp

  • uint32_t djbHash (StringRef Buffer, uint32_t H)

    The Bernstein hash function used by the DWARF accelerator tables.

    Defined at line 22 of file llvm/include/llvm/Support/DJB.h

  • template <class T, class InfoT>
    T * getUniqued (DenseSet<T *, InfoT> & Store, const typename InfoT::KeyTy & Key)

    Defined at line 22 of file llvm/lib/IR/MetadataImpl.h

  • vector getOpDescriptions ()

    Defined at line 22 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp

  • void PrintTo (Type * T, ::std::ostream * OS)

    Defined at line 23 of file llvm/unittests/FuzzMutate/OperationsTest.cpp

  • int initTM ()

    Defined at line 23 of file llvm/unittests/Target/X86/TernlogTest.cpp

  • template <unsigned Size, class ContainerTy, class PredicateFn>
    auto filter_to_vector (ContainerTy && C, PredicateFn && Pred)

    Filter a range to a SmallVector with the element types deduced.

    Defined at line 24 of file llvm/include/llvm/ADT/SmallVectorExtras.h

  • void CollectDiagnosticsOutput (const SMDiagnostic & Diag, void * Ctx)

    Assumes Ctx is an SMDiagnostic where Diag can be stored.

    Defined at line 24 of file llvm/unittests/Support/YAMLParserTest.cpp

  • bool isSpecificDef (const Init & N, StringRef Def)

    A convenience function to check that an Init refers to a specific def. This

    is primarily useful for testing for defs and similar in DagInit's since

    DagInit's support any type inside them.

    Defined at line 24 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h

  • void dumpBasicBlockLabel (const BasicBlock * BB, ModuleSlotTracker & MST)

    Defined at line 24 of file llvm/lib/Transforms/Coroutines/SuspendCrossingInfo.cpp

  • template <typename T>
    std::ostream & operator<< (std::ostream & OS, const StringMap<T> & M)

    Support for printing to std::ostream, for use with e.g. producing more

    useful error messages with Google Test.

    Defined at line 24 of file llvm/include/llvm/Testing/ADT/StringMap.h

  • unsigned int encodeSLEB128 (int64_t Value, raw_ostream & OS, unsigned int PadTo)

    Utility function to encode a SLEB128 value to an output stream. Returns

    the length in bytes of the encoded value.

    Defined at line 24 of file llvm/include/llvm/Support/LEB128.h

  • template <class InputBytes>
    basic_string encodeBase64 (const InputBytes & Bytes)

    Defined at line 24 of file llvm/include/llvm/Support/Base64.h

  • template <typename ParentClass>
    void invalidateParentIListOrdering (ParentClass * Parent)

    Notify basic blocks when an instruction is inserted.

    Defined at line 25 of file llvm/lib/IR/SymbolTableListTraitsImpl.h

  • void writeMemProfSchema (ProfOStream & OS, const memprof::MemProfSchema & Schema)

    Serialize Schema.

    Defined at line 25 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • void * safe_malloc (size_t Sz)

    Defined at line 25 of file llvm/include/llvm/Support/MemAlloc.h

  • optional unwrap ( Model, bool & JIT)

    Defined at line 25 of file llvm/include/llvm/Target/CodeGenCWrappers.h

  • void prettyPrintBaseTypeRef (DWARFUnit * U, raw_ostream & OS, DIDumpOptions DumpOpts, ArrayRef Operands, unsigned int Operand)

    Defined at line 25 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp

  • bool isThumbFunc (symbol_iterator Symbol, const object::ObjectFile & Obj, content_iterator Section)

    Defined at line 25 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h

  • Type * toVectorTy (Type * Scalar, unsigned int VF)

    Defined at line 26 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • bool isSuperReg (const MCRegisterInfo * MCRI, MCRegister Reg)

    This analysis only keeps track and cares about super registers, not the

    subregisters. All reads from/writes to subregisters are considered the

    same operation to super registers.

    Defined at line 26 of file llvm/lib/DWARFCFIChecker/Registers.h

  • bool isImmSExti64i8Value (uint64_t Value)

    Defined at line 26 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h

  • void PrintTo (const hash_code & code, std::ostream * os)

    Helper for test code to print hash codes.

    Defined at line 26 of file llvm/unittests/ADT/HashingTest.cpp

  • template <typename T, typename GenT>
    T uniform (GenT & Gen)

    Return a uniformly distributed random value of type

    Defined at line 26 of file llvm/include/llvm/FuzzMutate/Random.h

  • tm getStructTM (time_point TP)

    Defined at line 26 of file llvm/lib/Support/Chrono.cpp

  • template <typename LiveRangeT, typename EqClassesT>
    void DistributeRange (LiveRangeT & LR, LiveRangeT *[] SplitLRs, EqClassesT VNIClasses)

    Helper function that distributes live range value numbers and the

    corresponding segments of a primary live range

    to a list of newly

    created live ranges

    maps each value number in

    to 0 meaning it should stay or to 1..N meaning it should go to a specific

    live range in the

    array.

    Defined at line 26 of file llvm/lib/CodeGen/LiveRangeUtils.h

  • bool extractConstantMask (const Constant * C, unsigned int MaskEltSizeInBits, APInt & UndefElts, SmallVectorImpl<uint64_t> & RawMask)

    Defined at line 26 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp

  • auto instrs (const MachineBasicBlock & BB)

    Defined at line 27 of file llvm/include/llvm/CodeGen/MachineSSAContext.h

  • auto instrs (const BasicBlock & BB)

    Defined at line 27 of file llvm/include/llvm/IR/SSAContext.h

  • error_code make_error_code (cxxdump_error e)

    Defined at line 27 of file llvm/tools/llvm-cxxdump/Error.h

  • void removeSSACopy (Function & F)

    Defined at line 27 of file llvm/unittests/Transforms/IPO/FunctionSpecializationTest.cpp

  • void printChar (raw_ostream & OS, char C)

    Defined at line 27 of file llvm/utils/TableGen/Basic/SequenceToOffsetTable.h

  • bool CompareVars (const ASanStackVariableDescription & a, const ASanStackVariableDescription & b)

    We sort the stack variables by alignment (largest first) to minimize

    unnecessary large gaps due to alignment.

    It is tempting to also sort variables by size so that larger variables

    have larger redzones at both ends. But reordering will make report analysis

    harder, especially when temporary unnamed variables are present.

    So, until we can provide more information (type, line number, etc)

    for the stack variables we avoid reordering them too much.

    Defined at line 28 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp

  • void PrintTo (BasicBlock * BB, ::std::ostream * OS)

    Defined at line 28 of file llvm/unittests/FuzzMutate/OperationsTest.cpp

  • Error createError (const Twine & Msg)

    Defined at line 29 of file llvm/tools/llvm-readobj/ObjDumper.cpp

  • template <class T>
    T unwrapOrError (StringRef Input, Expected<T> EO)

    Defined at line 29 of file llvm/tools/llvm-readobj/llvm-readobj.h

  • bool isImmSExti64i32Value (uint64_t Value)

    Defined at line 30 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h

  • bool isPreISelGenericOpcode (unsigned int Opcode)

    Check whether the given Opcode is a generic opcode that is not supposed

    to appear after ISel.

    Defined at line 30 of file llvm/include/llvm/CodeGen/TargetOpcodes.h

  • stable_hash stable_hash_combine (ArrayRef Buffer)

    Defined at line 30 of file llvm/include/llvm/ADT/StableHashing.h

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 30 of file llvm/unittests/IR/DroppedVariableStatsIRTest.cpp

  • template <typename T>
    std::ostream & operator<< (std::ostream & OS, const StringMapEntry<T> & E)

    Support for printing to std::ostream, for use with e.g. producing more

    useful error messages with Google Test.

    Defined at line 30 of file llvm/include/llvm/Testing/ADT/StringMapEntry.h

  • raw_ostream & operator<< (raw_ostream & Out, const VersionTuple & V)

    Print a version number.

    Defined at line 30 of file llvm/lib/Support/VersionTuple.cpp

  • SmallVector getSuperRegs (const MCRegisterInfo * MCRI)

    Defined at line 30 of file llvm/lib/DWARFCFIChecker/Registers.h

  • bool operator< (const ExportedSymbol & LHS, const ExportedSymbol & RHS)

    Defined at line 31 of file llvm/unittests/TextAPI/TextStubHelpers.h

  • template <class ContainerTy, class PredicateFn>
    auto filter_to_vector (ContainerTy && C, PredicateFn && Pred)

    Filter a range to a SmallVector with the element types deduced.

    Defined at line 31 of file llvm/include/llvm/ADT/SmallVectorExtras.h

  • template <typename T>
    basic_string debugString (T && Op)

    Simple helper function that returns a string as printed from a op.

    Defined at line 31 of file llvm/include/llvm/Support/LSP/Transport.h

  • void ExpectParseError (StringRef Message, StringRef Input)

    Checks that the given input gives a parse error. Makes sure that an error

    text is available and the parse fails.

    Defined at line 31 of file llvm/unittests/Support/YAMLParserTest.cpp

  • bool operator== (const MCOperand & a, const MCOperand & b)

    Defined at line 31 of file llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp

  • bool operator== (const DWARFLocationExpression & L, const DWARFLocationExpression & R)

    Defined at line 32 of file llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h

  • void add16 (uint8_t * p, int16_t v)

    Defined at line 32 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h

  • void exitWithError (error_code EC, StringRef Whence)

    Defined at line 33 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h

  • void PrintTo (Value * V, ::std::ostream * OS)

    Defined at line 33 of file llvm/unittests/FuzzMutate/OperationsTest.cpp

  • uint64_t writeMemProfRecords (ProfOStream & OS, llvm::MapVector<GlobalValue::GUID, memprof::IndexedMemProfRecord> & MemProfRecordData, memprof::MemProfSchema * Schema, IndexedVersion Version, llvm::DenseMap<memprof::CallStackId, memprof::LinearCallStackId> * MemProfCallStackIndexes)

    Serialize MemProfRecordData. Return RecordTableOffset.

    Defined at line 33 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • Uint24 getSwappedBytes (Uint24 C)

    Needed by swapByteOrder().

    Defined at line 34 of file llvm/include/llvm/Support/DataExtractor.h

  • bool isImmUnsignedi8Value (uint64_t Value)

    Defined at line 34 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h

  • bool operator< (const X86FoldTableEntry & TE, unsigned int Opcode)

    Defined at line 34 of file llvm/lib/Target/X86/X86InstrFoldTables.h

  • template <typename GraphT>
    void viewGraphForFunction (Function & F, GraphT Graph, StringRef Name, bool IsSimple)

    Defined at line 34 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h

  • float normalizeSpillWeight (float UseDefFreq, unsigned int Size, unsigned int NumInstr)

    Normalize the spill weight of a live interval

    The spill weight of a live interval is computed as:

    (sum(use freq) + sum(def freq)) / (K + size)

    Parameters

    UseDefFreq Expected number of executed use and def instructions per function call. Derived from block frequencies.
    Size Size of live interval as returnexd by getSize()
    NumInstr Number of instructions using this live interval

    Defined at line 34 of file llvm/include/llvm/CodeGen/CalcSpillWeights.h

  • template <class CostType>
    const CostTblEntryT<CostType> * CostTableLookup (ArrayRef<CostTblEntryT<CostType>> Tbl, int ISD, MVT Ty)

    Find in cost table.

    Defined at line 34 of file llvm/include/llvm/CodeGen/CostTable.h

  • bool operator== (const ExportedSymbol & LHS, const ExportedSymbol & RHS)

    Defined at line 35 of file llvm/unittests/TextAPI/TextStubHelpers.h

  • const Record * getDefOfSubClass (const Init & N, StringRef Cls)

    A convenience function to check that an Init refers to a def that is a

    subclass of the given class and coerce it to a def if it is. This is

    primarily useful for testing for subclasses of GIDefKind and similar in

    DagInit's since DagInit's support any type inside them.

    Defined at line 35 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h

  • template <typename T>
    ArchType getMachineArchType (T machine)

    Defined at line 35 of file llvm/include/llvm/Object/WindowsMachineFlag.h

  • bool isTargetSpecificOpcode (unsigned int Opcode)

    Check whether the given Opcode is a target-specific opcode.

    Defined at line 36 of file llvm/include/llvm/CodeGen/TargetOpcodes.h

  • stable_hash stable_hash_combine (stable_hash A, stable_hash B)

    Defined at line 36 of file llvm/include/llvm/ADT/StableHashing.h

  • template <typename Loc, typename Function, typename AnchorList = ArrayRef<std::pair<Loc, Function>>>
    void longestCommonSequence (AnchorList AnchorList1, AnchorList AnchorList2, llvm::function_ref<bool (const Function &, const Function &)> FunctionMatchesProfile, llvm::function_ref<void (Loc, Loc)> InsertMatching)

    This function implements the Myers diff algorithm used for stale profile

    matching. The algorithm provides a simple and efficient way to find the

    Longest Common Subsequence(LCS) or the Shortest Edit Script(SES) of two

    sequences. For more details, refer to the paper 'An O(ND) Difference

    Algorithm and Its Variations' by Eugene W. Myers.

    In the scenario of profile fuzzy matching, the two sequences are the IR

    callsite anchors and profile callsite anchors. The subsequence equivalent

    parts from the resulting SES are used to remap the IR locations to the

    profile locations. As the number of function callsite is usually not big,

    we currently just implements the basic greedy version(page 6 of the paper).

    Defined at line 36 of file llvm/include/llvm/Transforms/Utils/LongestCommonSequence.h

  • bool operator< (AtomicOrderingCABI , AtomicOrderingCABI )

    Defined at line 37 of file llvm/include/llvm/Support/AtomicOrdering.h

  • hash_code hash_value (const NonPOD & obj)

    Defined at line 37 of file llvm/unittests/ADT/HashingTest.cpp

  • bool operator!= (const DWARFLocationExpression & L, const DWARFLocationExpression & R)

    Defined at line 37 of file llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h

  • void or32le (void * P, int32_t V)

    Defined at line 37 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h

  • Expected setupMemoryBuffer (const Twine & Filename, vfs::FileSystem & FS)

    Defined at line 37 of file llvm/lib/CGData/CodeGenDataReader.cpp

  • template <typename T>
    Error readDescriptorRanges (DXContainerYAML::RootParameterHeaderYaml & Header, DXContainerYAML::RootSignatureYamlDesc & RootSigDesc, object::DirectX::DescriptorTableView * DTV)

    Defined at line 37 of file llvm/lib/ObjectYAML/DXContainerYAML.cpp

  • bool operator> (AtomicOrderingCABI , AtomicOrderingCABI )

    Defined at line 38 of file llvm/include/llvm/Support/AtomicOrdering.h

  • void exitWithError (Error E, StringRef Whence)

    Defined at line 38 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h

  • bool isImmUnsignedi4Value (uint64_t Value)

    Defined at line 38 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h

  • template <unsigned Size, class ContainerTy, class FuncTy>
    auto map_to_vector (ContainerTy && C, FuncTy && F)

    Map a range to a SmallVector with element types deduced from the mapping.

    Defined at line 38 of file llvm/include/llvm/ADT/SmallVectorExtras.h

  • char hexdigit (unsigned int X, bool LowerCase)

    hexdigit - Return the hexadecimal character for the

    given number

    (which should be less than 16).

    Defined at line 38 of file llvm/include/llvm/ADT/StringExtras.h

  • void * safe_calloc (size_t Count, size_t Sz)

    Defined at line 38 of file llvm/include/llvm/Support/MemAlloc.h

  • bool operator<= (AtomicOrderingCABI , AtomicOrderingCABI )

    Defined at line 39 of file llvm/include/llvm/Support/AtomicOrdering.h

  • void PrintTo (Constant * C, ::std::ostream * OS)

    Defined at line 39 of file llvm/unittests/FuzzMutate/OperationsTest.cpp

  • bool operator== (const MCInst & a, const MCInst & b)

    Defined at line 39 of file llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp

  • bool operator>= (AtomicOrderingCABI , AtomicOrderingCABI )

    Defined at line 40 of file llvm/include/llvm/Support/AtomicOrdering.h

  • bool isNoModRef (ModRefInfo MRI)

    Defined at line 40 of file llvm/include/llvm/Support/ModRef.h

  • basic_string stripWhitespace (basic_string S)

    Defined at line 40 of file llvm/unittests/TextAPI/TextStubHelpers.h

  • std::ostream & operator<< (std::ostream & OS, LegalizeActionStep Ty)

    Defined at line 40 of file llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp

  • void ExpectParseSuccess (StringRef Message, StringRef Input)

    Checks that the given input can be parsed without error.

    Defined at line 40 of file llvm/unittests/Support/YAMLParserTest.cpp

  • bool inFunctionScope (CompileUnit & U, unsigned int Idx)

    Check if the DIE at

    is in the scope of a function.

    Defined at line 40 of file llvm/lib/DWARFLinker/Classic/DWARFLinkerCompileUnit.cpp

  • uint64_t VarAndRedzoneSize (uint64_t Size, uint64_t Granularity, uint64_t Alignment)

    We want to add a full redzone after every variable.

    The larger the variable Size the larger is the redzone.

    The resulting frame size is a multiple of Alignment.

    Defined at line 40 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp

  • template <typename DesiredTypeName>
    StringRef getTypeName ()

    We provide a function which tries to compute the (demangled) name of a type

    statically.

    This routine may fail on some platforms or for particularly unusual types.

    Do not use it for anything other than logging and debugging aids. It isn't

    portable or dependendable in any real sense.

    The returned StringRef will point into a static storage duration string.

    However, it may not be null terminated and may be some strangely aligned

    inner substring of a larger string.

    Defined at line 40 of file llvm/include/llvm/Support/TypeName.h

  • void initializeLowerInvokeLegacyPassPass (PassRegistry & )

    Defined at line 41 of file llvm/lib/Transforms/Utils/LowerInvoke.cpp

  • stable_hash stable_hash_combine (stable_hash A, stable_hash B, stable_hash C)

    Defined at line 41 of file llvm/include/llvm/ADT/StableHashing.h

  • bool operator== (const MemoryBufferRef & LHS, const MemoryBufferRef & RHS)

    Check pointer identity (not value) of identifier and data.

    Defined at line 41 of file llvm/include/llvm/Support/MemoryBufferRef.h

  • bool isPGSOColdCodeOnly (ProfileSummaryInfo * PSI)

    Defined at line 41 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h

  • bool isPreISelGenericOptimizationHint (unsigned int Opcode)

    Defined at line 42 of file llvm/include/llvm/CodeGen/TargetOpcodes.h

  • pair fcmpToClassTest (Predicate Pred, const Function & F, Value * LHS, Value * RHS, bool LookThroughSrc)

    Returns a pair of values, which if passed to llvm.is.fpclass, returns the

    same result as an fcmp with the given operands.

    If

    is true, consider the input value when computing the

    mask.

    If

    is false, ignore the source value (i.e. the first pair

    element will always be LHS.

    Defined at line 42 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h

  • bool isModOrRefSet (ModRefInfo MRI)

    Defined at line 43 of file llvm/include/llvm/Support/ModRef.h

  • MCTargetStreamer * createX86NullTargetStreamer (MCStreamer & S)

    Implements X86-only null emission.

    Defined at line 43 of file llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h

  • template <typename T>
    raw_ostream & operator<< (const ColoredRawOstream & OS, T && Value)

    Defined at line 43 of file llvm/tools/llvm-cov/RenderingSupport.h

  • bool operator< (const ExpansionView & LHS, const ExpansionView & RHS)

    Defined at line 43 of file llvm/tools/llvm-cov/SourceCoverageView.h

  • template <typename T, typename... Ts>
    T unwrapOrError (Expected<T> EO, Ts &&... Args)

    Defined at line 43 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h

  • void write32AArch64Imm (uint8_t * T, uint64_t imm, uint32_t rangeLimit)

    Defined at line 43 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h

  • template <class S1Ty, class S2Ty>
    bool set_union (S1Ty & S1, const S2Ty & S2)

    set_union(A, B) - Compute A := A u B, return whether A changed.

    Defined at line 43 of file llvm/include/llvm/ADT/SetOperations.h

  • bool operator!= (const Chunk & C1, const Chunk & C2)

    Operator when populating CurrentChunks in Generic Delta Pass

    Defined at line 44 of file llvm/tools/llvm-reduce/deltas/Delta.h

  • template <typename Int>
    bool isValidAtomicOrderingCABI (Int I)

    Validate an integral value which isn't known to fit within the enum's range

    is a valid AtomicOrderingCABI.

    Defined at line 44 of file llvm/include/llvm/Support/AtomicOrdering.h

  • SmallVector getTrackingRegs (const MCRegisterInfo * MCRI)

    Defined at line 44 of file llvm/lib/DWARFCFIChecker/Registers.h

  • void error (error_code EC)

    Defined at line 44 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • tm getStructTMUtc (time_point TP)

    Defined at line 44 of file llvm/lib/Support/Chrono.cpp

  • template <typename InfoT>
    void union_modes (const InfoByHwMode<InfoT> & A, const InfoByHwMode<InfoT> & B, SmallVectorImpl<unsigned int> & Modes)

    Defined at line 44 of file llvm/utils/TableGen/Common/InfoByHwMode.h

  • void initializeMIRAddFSDiscriminatorsPass (PassRegistry & )

    Defined at line 45 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp

  • StringRef MCLOHDirectiveName ()

    Defined at line 45 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h

  • template <class ContainerTy, class FuncTy>
    auto map_to_vector (ContainerTy && C, FuncTy && F)

    Map a range to a SmallVector with element types deduced from the mapping.

    Defined at line 45 of file llvm/include/llvm/ADT/SmallVectorExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const Printable & P)

    Defined at line 45 of file llvm/include/llvm/Support/Printable.h

  • bool hasAttributeInAssume (AssumeInst & Assume, Value * IsOn, AttrKind Kind, uint64_t * ArgVal)

    Defined at line 45 of file llvm/include/llvm/Analysis/AssumeBundleQueries.h

  • template <typename T, typename Functor>
    unsigned int ComputeMappedEditDistance (ArrayRef<T> FromArray, ArrayRef<T> ToArray, Functor Map, bool AllowReplacements, unsigned int MaxEditDistance)

    Determine the edit distance between two sequences.

    Parameters

    FromArray the first sequence to compare.
    ToArray the second sequence to compare.
    Map A Functor to apply to each item of the sequences before comparison.
    AllowReplacements whether to allow element replacements (change one element into another) as a single operation, rather than as two operations (an insertion and a removal).
    MaxEditDistance If non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returns

    Defined at line 45 of file llvm/include/llvm/ADT/edit_distance.h

  • bool isModAndRefSet (ModRefInfo MRI)

    Defined at line 46 of file llvm/include/llvm/Support/ModRef.h

  • StringRef toString (TensorType TT)

    Defined at line 46 of file llvm/lib/Analysis/TensorSpec.cpp

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedAdd (T LHS, T RHS)

    Add two signed integers

    and

    Returns

    Optional of sum if no signed overflow occurred,

    otherwise.

    Defined at line 46 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    int checkedAdd (T LHS, T RHS)

    Add two signed integers

    and

    Returns

    Optional of sum if no signed overflow occurred,

    otherwise.

    Defined at line 46 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename OStream>
    OStream & operator<< (OStream & OS, const InterleavedRange<Range> & Interleaved)

    Defined at line 46 of file llvm/include/llvm/Support/InterleavedRange.h

  • const DagInit * getDagWithSpecificOperator (const Init & N, StringRef Name)

    A convenience function to check that an Init refers to a dag whose operator

    is a specific def and coerce it to a dag if it is. This is primarily useful

    for testing for subclasses of GIDefKind and similar in DagInit's since

    DagInit's support any type inside them.

    Defined at line 46 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h

  • stable_hash stable_hash_combine (stable_hash A, stable_hash B, stable_hash C, stable_hash D)

    Defined at line 47 of file llvm/include/llvm/ADT/StableHashing.h

  • template <size_t N, class CostType>
    const CostTblEntryT<CostType> * CostTableLookup (const CostTblEntryT<CostType> (&)[N] Table, int ISD, MVT Ty)

    Defined at line 47 of file llvm/include/llvm/CodeGen/CostTable.h

  • int getBundleStart (int I)

    Returns an iterator to the first instruction in the bundle containing

    Defined at line 47 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h

  •  wrap (Model Model)

    Defined at line 47 of file llvm/include/llvm/Target/CodeGenCWrappers.h

  • bool printOp (const DWARFExpression::Operation * Op, raw_ostream & OS, DIDumpOptions DumpOpts, const DWARFExpression * Expr, DWARFUnit * U)

    Defined at line 47 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp

  • bool operator== (const Chunk & C1, const Chunk & C2)

    Defined at line 48 of file llvm/tools/llvm-reduce/deltas/Delta.h

  • vector toStringRefArray (const char *const * Strings)

    Given an array of c-style strings terminated by a null pointer, construct

    a vector of StringRefs representing the same strings without the terminating

    null string.

    Defined at line 48 of file llvm/include/llvm/ADT/StringExtras.h

  • bool checkEqualityOnTransform (MachO::InterfaceFile & FileA, MachO::InterfaceFile & FileB, void (*)(MachO::InterfaceFile *) Transform)

    This will transform a single InterfaceFile then compare against the other

    InterfaceFile then transform the second InterfaceFile in the same way to

    regain equality.

    Defined at line 48 of file llvm/unittests/TextAPI/TextStubHelpers.h

  • template <typename T, typename Callable>
    TrieNode<T> * mergeTrieNodes (const TrieNode<T> & Left, const TrieNode<T> & Right, std::remove_reference_t<TrieNode<T> *> NewParent, std::forward_list<TrieNode<T>> & NodeStore, Callable && MergeCallable)

    Merges together two TrieNodes with like function ids, aggregating their

    callee lists and durations. The caller must provide storage where new merged

    nodes can be allocated in the form of a linked list.

    Defined at line 48 of file llvm/tools/llvm-xray/trie-node.h

  • GenericValue PTOGV (void * P)

    Defined at line 49 of file llvm/include/llvm/ExecutionEngine/GenericValue.h

  • bool isValidMCLOHType (unsigned int Kind)

    Defined at line 49 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h

  • bool isModSet (ModRefInfo MRI)

    Defined at line 49 of file llvm/include/llvm/Support/ModRef.h

  • raw_ostream & operator<< (raw_ostream & OS, const MCLabel & Label)

    Defined at line 49 of file llvm/include/llvm/MC/MCLabel.h

  • bool operator!= (const MemoryBufferRef & LHS, const MemoryBufferRef & RHS)

    Defined at line 49 of file llvm/include/llvm/Support/MemoryBufferRef.h

  • raw_ostream & operator<< (raw_ostream & OS, const CodeExpander & Expander)

    Defined at line 49 of file llvm/utils/TableGen/Common/GlobalISel/CodeExpander.h

  • void emitWarningSummary (uint64_t Num, uint64_t Total, StringRef Msg)

    Defined at line 49 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h

  • template <typename... ArgsTy>
    FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, AttributeList AttributeList, Type * RetTy, ArgsTy... Args)

    Defined at line 49 of file llvm/include/llvm/Transforms/Utils/BuildLibCalls.h

  • ColoredRawOstream colored_ostream (raw_ostream & OS, Colors Color, bool IsColorUsed, bool Bold, bool BG)

    Change the color of the output stream if the `IsColorUsed` flag

    is true. Returns an object that resets the color when destroyed.

    Defined at line 49 of file llvm/tools/llvm-cov/RenderingSupport.h

  • template <typename R, typename... Ts>
    auto runOnNewStack (unsigned int StackSize, function_ref<R (Ts...)> Fn, Ts &&... Args)

    Defined at line 49 of file llvm/include/llvm/Support/ProgramStack.h

  • void * GVTOP (const GenericValue & GV)

    Defined at line 50 of file llvm/include/llvm/ExecutionEngine/GenericValue.h

  • std::tuple<Register, FPClassTest, FPClassTest> fcmpImpliesClass (Predicate Pred, const MachineFunction & MF, Register LHS, Register RHS, bool LookThroughSrc)

    Compute the possible floating-point classes that

    could be based on

    fcmp

    If the compare returns an exact class test, ClassesIfTrue ==

    ~ClassesIfFalse

    This is a less exact version of fcmpToClassTest (e.g. fcmpToClassTest will

    only succeed for a test of x > 0 implies positive, but not x > 1).

    If

    is true, consider the input value when computing the

    mask. This may look through sign bit operations.

    If

    is false, ignore the source value (i.e. the first

    pair element will always be LHS.

    Defined at line 50 of file llvm/include/llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h

  • uint64_t xxh3_64bits (StringRef data)

    Defined at line 51 of file llvm/include/llvm/Support/xxhash.h

  • template <typename T>
    T jitTargetAddressToPointer (JITTargetAddress Addr)

    Convert a JITTargetAddress to a pointer.

    Note: This is a raw cast of the address bit pattern to the given pointer

    type. When casting to a function pointer in order to execute JIT'd code

    jitTargetAddressToFunction should be preferred, as it will also perform

    pointer signing on targets that require it.

    Defined at line 51 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h

  • bool isAsynchronousEHPersonality (EHPersonality Pers)

    Returns true if this personality function catches asynchronous

    exceptions.

    Defined at line 51 of file llvm/include/llvm/IR/EHPersonalities.h

  • void write32AArch64Ldr (uint8_t * T, uint64_t imm)

    Defined at line 51 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h

  • bool llvm_is_multithreaded ()

    Returns true if LLVM is compiled with support for multi-threading, and

    false otherwise.

    Defined at line 52 of file llvm/include/llvm/Support/Threading.h

  • bool operator!= (const MachineLocation & LHS, const MachineLocation & RHS)

    Defined at line 52 of file llvm/include/llvm/MC/MachineLocation.h

  • bool isRefSet (ModRefInfo MRI)

    Defined at line 52 of file llvm/include/llvm/Support/ModRef.h

  • void PrintTo (StringRef S, std::ostream * OS)

    Defined at line 52 of file third-party/unittest/googletest/include/gtest/internal/custom/gtest-printers.h

  • unsigned int ComputeLinearIndex (Type * Ty, ArrayRef Indices, unsigned int CurIndex)

    Defined at line 52 of file llvm/include/llvm/CodeGen/Analysis.h

  • bool operator== (const TemporalProfTraceTy & lhs, const TemporalProfTraceTy & rhs)

    Defined at line 52 of file llvm/unittests/ProfileData/InstrProfTest.cpp

  • void error (Error Err)

    Defined at line 52 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • MCRegister getSuperReg (const MCRegisterInfo * MCRI, MCRegister Reg)

    Defined at line 52 of file llvm/lib/DWARFCFIChecker/Registers.h

  • StringRef spell (RoundingMode RM)

    Returns text representation of the given rounding mode.

    Defined at line 52 of file llvm/include/llvm/ADT/FloatingPointMode.h

  • void * safe_realloc (void * Ptr, size_t Sz)

    Defined at line 52 of file llvm/include/llvm/Support/MemAlloc.h

  • template <typename FuncT, typename BFIT>
    bool shouldFuncOptimizeForSizeImpl (const FuncT * F, ProfileSummaryInfo * PSI, BFIT * BFI, PGSOQueryType QueryType)

    Defined at line 52 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h

  • unsigned int encodeSLEB128 (int64_t Value, uint8_t * p, unsigned int PadTo)

    Utility function to encode a SLEB128 value to a buffer. Returns

    the length in bytes of the encoded value.

    Defined at line 52 of file llvm/include/llvm/Support/LEB128.h

  • template <typename Callable>
    auto make_scope_exit (Callable && F)

    Keeps the callable object that is passed in, and execute it at the

    destruction of the returned object (usually at the scope exit where the

    returned object is kept).

    Interface is specified by p0052r2.

    Defined at line 53 of file llvm/include/llvm/ADT/ScopeExit.h

  • bool operator< (const Chunk & C1, const Chunk & C2)

    Operator used for sets

    Defined at line 53 of file llvm/tools/llvm-reduce/deltas/Delta.h

  • uint64_t getDebugInfoSize (DWARFContext & Dwarf)

    Compute the total size of the debug info.

    Defined at line 53 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • template <typename DerivedT, typename KeyInfoT, typename BucketT>
    bool operator== (const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & RHS)

    Defined at line 53 of file llvm/include/llvm/TextAPI/SymbolSet.h

  • int MCLOHNameToId (StringRef Name)

    Defined at line 53 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h

  • hash_code hash_value (const ArgInfo & A)

    Defined at line 54 of file llvm/include/llvm/Transforms/Utils/SCCPSolver.h

  • void printAsPrintable (raw_ostream & W, const uint8_t * Start, size_t Len)

    Defined at line 54 of file llvm/tools/llvm-readobj/ObjDumper.cpp

  • void reduceRegisterMasksMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 63 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterMasks.cpp

  • void reduceSinkDefsToUsesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 55 of file llvm/tools/llvm-reduce/deltas/ReduceSinkDefsToUses.cpp

  • void reduceAtomicSyncScopesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 65 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  • void dumpOffloadBinary (const object::ObjectFile & O, StringRef ArchName)

    Print the embedded offloading contents of an ObjectFile

    Defined at line 54 of file llvm/tools/llvm-objdump/OffloadDump.cpp

  • LogicalResult success (bool IsSuccess)

    Utility function to generate a LogicalResult. If isSuccess is true a

    `success` result is generated, otherwise a 'failure' result is generated.

    Defined at line 55 of file llvm/include/llvm/Support/LogicalResult.h

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedSub (T LHS, T RHS)

    Subtract two signed integers

    and

    Returns

    Optional of sum if no signed overflow occurred,

    otherwise.

    Defined at line 55 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    int checkedSub (T LHS, T RHS)

    Subtract two signed integers

    and

    Returns

    Optional of sum if no signed overflow occurred,

    otherwise.

    Defined at line 55 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • Type * toVectorizedTy (Type * Ty, ElementCount EC)

    A helper for converting to vectorized types. For scalar types, this is

    equivalent to calling `toVectorTy`. For struct types, this returns a new

    struct where each element type has been widened to a vector type.

    Note:

    - If the incoming type is void, we return void

    - If

    is scalar,

    is returned unchanged

    - Only unpacked literal struct types are supported

    Defined at line 55 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • StringRef get_stable_name (StringRef Name)

    Removes suffixes introduced by LLVM from the name to enhance stability and

    maintain closeness to the original name across different builds.

    Defined at line 55 of file llvm/include/llvm/ADT/StableHashing.h

  • bool operator< (const SymbolInfoTy & P1, const SymbolInfoTy & P2)

    Defined at line 55 of file llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h

  • StringRef toStringRef (bool B)

    Construct a string ref from a boolean.

    Defined at line 56 of file llvm/include/llvm/ADT/StringExtras.h

  • bool hasSingleValue (const ValueLatticeElement & Val)

    Defined at line 56 of file llvm/lib/Analysis/ValueLattice.cpp

  • bool operator== (const Offset & LHS, const Offset & RHS)

    Defined at line 57 of file llvm/include/llvm/ADT/StringTable.h

  • bool operator< (const InstantiationView & LHS, const InstantiationView & RHS)

    Defined at line 57 of file llvm/tools/llvm-cov/SourceCoverageView.h

  • raw_ostream & operator<< (raw_ostream & OS, const MachineConstantPoolValue & V)

    Defined at line 57 of file llvm/include/llvm/CodeGen/MachineConstantPool.h

  • pair fcmpToClassTest (Predicate Pred, const Function & F, Value * LHS, const APFloat * ConstRHS, bool LookThroughSrc)

    Returns a pair of values, which if passed to llvm.is.fpclass, returns the

    same result as an fcmp with the given operands.

    If

    is true, consider the input value when computing the

    mask.

    If

    is false, ignore the source value (i.e. the first pair

    element will always be LHS.

    Defined at line 57 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h

  • bool operator< (const Arc & LHS, const Arc & RHS)

    Defined at line 58 of file llvm/unittests/IR/CFGBuilder.h

  • void reduceRegisterUsesMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 58 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterUses.cpp

  • void reduceNamedMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Remove unneeded arguments to named metadata.

    Defined at line 50 of file llvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp

  • template <class S1Ty, class S2Ty>
    void set_intersect (S1Ty & S1, const S2Ty & S2)

    set_intersect(A, B) - Compute A := A ^ B

    Identical to set_intersection, except that it works on set

    <

    >'s and

    is nicer to use. Functionally, this iterates through S1, removing

    elements that are not contained in S2.

    Defined at line 58 of file llvm/include/llvm/ADT/SetOperations.h

  • uint64_t writeMemProfFrames (ProfOStream & OS, llvm::MapVector<memprof::FrameId, memprof::Frame> & MemProfFrameData)

    Serialize MemProfFrameData. Return FrameTableOffset.

    Defined at line 58 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • StringRef toStringRef (ArrayRef Input)

    Construct a string ref from an array ref of unsigned chars.

    Defined at line 59 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename... ArgsTy>
    FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, Type * RetTy, ArgsTy... Args)

    Same as above, but without the attributes.

    Defined at line 59 of file llvm/include/llvm/Transforms/Utils/BuildLibCalls.h

  • template <typename T>
    T unwrapOrError (Expected<T> EO)

    Defined at line 60 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • error_code disableAutoConversion (int FD)

    Defined at line 60 of file llvm/include/llvm/Support/AutoConvert.h

  • const DagInit * getDagWithOperatorOfSubClass (const Init & N, StringRef Cls)

    A convenience function to check that an Init refers to a dag whose operator

    is a def that is a subclass of the given class and coerce it to a dag if it

    is. This is primarily useful for testing for subclasses of GIDefKind and

    similar in DagInit's since DagInit's support any type inside them.

    Defined at line 60 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h

  • bool operator!= (const Offset & LHS, const Offset & RHS)

    Defined at line 61 of file llvm/include/llvm/ADT/StringTable.h

  • LogicalResult failure (bool IsFailure)

    Utility function to generate a LogicalResult. If isFailure is true a

    `failure` result is generated, otherwise a 'success' result is generated.

    Defined at line 61 of file llvm/include/llvm/Support/LogicalResult.h

  • bool operator== (const Range & L, const Range & R)

    Defined at line 61 of file llvm/include/llvm/Testing/Annotations/Annotations.h

  • template <unsigned N>
    void PrintTo (const SmallString<N> & S, std::ostream * OS)

    We need both SmallString

    <N

    > and SmallVectorImpl

    <char

    > overloads:

    - the SmallString

    <N

    > template is needed as overload resolution will

    instantiate generic PrintTo

    <T

    > rather than do derived-to-base conversion

    - but SmallVectorImpl

    <char

    > is sometimes the actual static type, in code

    that erases the small size

    Defined at line 61 of file third-party/unittest/googletest/include/gtest/internal/custom/gtest-printers.h

  • StringRef toStringRef (ArrayRef Input)

    Defined at line 62 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename T>
    T jitTargetAddressToFunction (JITTargetAddress Addr)

    Convert a JITTargetAddress to a callable function pointer.

    Casts the given address to a callable function pointer. This operation

    will perform pointer signing for platforms that require it (e.g. arm64e).

    Defined at line 62 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h

  • error_code make_error_code (cgdata_error E)

    Defined at line 63 of file llvm/include/llvm/CGData/CodeGenData.h

  • basic_string buildIDToString (ArrayRef ID)

    Returns a binary BuildID as a normalized hex string.

    Uses lowercase for compatibility with common debuginfod servers.

    Defined at line 63 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void InitializeAllTargetInfos ()

    InitializeAllTargetInfos - The main program should call this function if

    it wants access to all available targets that LLVM is configured to

    support, to make them available via the TargetRegistry.

    It is legal for a client to make multiple calls to this function.

    Defined at line 63 of file llvm/include/llvm/Support/TargetSelect.h

  • int getBundleEnd (int I)

    Returns an iterator pointing beyond the bundle containing

    Defined at line 63 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h

  • CompileUnit * getUnitForOffset (const UnitListTy & Units, uint64_t Offset)

    Similar to DWARFUnitSection::getUnitForOffset(), but returning our

    CompileUnit object instead.

    Defined at line 63 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • bool operator!= (const Range & L, const Range & R)

    Defined at line 64 of file llvm/include/llvm/Testing/Annotations/Annotations.h

  • void PrintTo (const SmallVectorImpl<char> & S, std::ostream * OS)

    Defined at line 64 of file third-party/unittest/googletest/include/gtest/internal/custom/gtest-printers.h

  • raw_ostream & operator<< (raw_ostream & OS, RoundingMode RM)

    Defined at line 64 of file llvm/include/llvm/ADT/FloatingPointMode.h

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedMul (T LHS, T RHS)

    Multiply two signed integers

    and

    Returns

    Optional of product if no signed overflow occurred,

    otherwise.

    Defined at line 64 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    int checkedMul (T LHS, T RHS)

    Multiply two signed integers

    and

    Returns

    Optional of product if no signed overflow occurred,

    otherwise.

    Defined at line 64 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • tuple fcmpImpliesClass (Predicate Pred, const Function & F, Value * LHS, FPClassTest RHSClass, bool LookThroughSrc)

    Defined at line 64 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h

  • unsigned int getFCmpCode (Predicate CC)

    Similar to getICmpCode but for FCmpInst. This encodes a fcmp predicate

    into a four bit mask.

    Defined at line 64 of file llvm/include/llvm/Analysis/CmpInstAnalysis.h

  • Type * toScalarizedTy (Type * Ty)

    A helper for converting vectorized types to scalarized (non-vector) types.

    For vector types, this is equivalent to calling .getScalarType(). For struct

    types, this returns a new struct where each element type has been converted

    to a scalar type. Note: Only unpacked literal struct types are supported.

    Defined at line 65 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • Instruction & GetInstByName (Function & F, StringRef Name)

    Defined at line 65 of file llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp

  • void write32AArch64Addr (void * T, uint64_t s, uint64_t p, int shift)

    Defined at line 65 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h

  • template <class CostType>
    const TypeConversionCostTblEntryT<CostType> * ConvertCostTableLookup (ArrayRef<TypeConversionCostTblEntryT<CostType>> Tbl, int ISD, MVT Dst, MVT Src)

    Find in type conversion cost table.

    Defined at line 65 of file llvm/include/llvm/CodeGen/CostTable.h

  • template <typename... ArgsTy>
    FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, AttributeList AttributeList, FunctionType * Invalid, ArgsTy... Args)

    Avoid an incorrect ordering that'd otherwise compile incorrectly.

    Defined at line 66 of file llvm/include/llvm/Transforms/Utils/BuildLibCalls.h

  • bool isFuncletEHPersonality (EHPersonality Pers)

    Returns true if this is a personality function that invokes

    handler funclets (which must return to it).

    Defined at line 66 of file llvm/include/llvm/IR/EHPersonalities.h

  • bool succeeded (LogicalResult Result)

    Utility function that returns true if the provided LogicalResult corresponds

    to a success value.

    Defined at line 67 of file llvm/include/llvm/Support/LogicalResult.h

  • bool operator< (AtomicOrdering , AtomicOrdering )

    Defined at line 68 of file llvm/include/llvm/Support/AtomicOrdering.h

  • bool isDefaultFPEnvironment (ExceptionBehavior EB, RoundingMode RM)

    Returns true if the exception handling behavior and rounding mode

    match what is used in the default floating point environment.

    Defined at line 68 of file llvm/include/llvm/IR/FPEnv.h

  • error_code make_error_code (sampleprof_error E)

    Defined at line 68 of file llvm/include/llvm/ProfileData/SampleProf.h

  • bool operator== (const SMTSort & LHS, const SMTSort & RHS)

    Defined at line 68 of file llvm/include/llvm/Support/SMTAPI.h

  • void reduceConditionalsTrueDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 68 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp

  • template <typename T>
    ErrorOr<T> expectedToErrorOrAndEmitErrors (LLVMContext & Ctx, Expected<T> Val)

    Defined at line 68 of file llvm/include/llvm/Bitcode/BitcodeReader.h

  • template <typename DerivedT, typename KeyInfoT, typename BucketT>
    bool operator!= (const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & RHS)

    Defined at line 68 of file llvm/include/llvm/TextAPI/SymbolSet.h

  • error_code enableAutoConversion (int FD)

    Defined at line 68 of file llvm/include/llvm/Support/AutoConvert.h

  • template <class CharT = uint8_t>
    ArrayRef<CharT> arrayRefFromStringRef (StringRef Input)

    Construct a string ref from an array ref of unsigned chars.

    Defined at line 68 of file llvm/include/llvm/ADT/StringExtras.h

  • template <class PassName>
    Pass * callDefaultCtor ()

    Defined at line 68 of file llvm/include/llvm/PassSupport.h

  • StringRef MCLOHIdToName (MCLOHType Kind)

    Defined at line 68 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h

  • const char * toString (DWARFSectionKind Kind)

    Defined at line 68 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h

  • bool operator> (AtomicOrdering , AtomicOrdering )

    Defined at line 69 of file llvm/include/llvm/Support/AtomicOrdering.h

  • Comdat * unwrap (LLVMComdatRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 70 of file llvm/include/llvm/IR/Comdat.h

  • LLVMComdatRef wrap (const Comdat * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 70 of file llvm/include/llvm/IR/Comdat.h

  • bool operator<= (AtomicOrdering , AtomicOrdering )

    Defined at line 70 of file llvm/include/llvm/Support/AtomicOrdering.h

  • template <class T>
    iterator_range<T> make_range (T x, T y)

    Convenience function for iterating over sub-ranges.

    This provides a bit of syntactic sugar to make using sub-ranges

    in for loops a bit easier. Analogous to std::make_pair().

    Defined at line 70 of file llvm/include/llvm/ADT/iterator_range.h

  • template <typename T>
    JITTargetAddress pointerToJITTargetAddress (T * Ptr)

    Convert a pointer to a JITTargetAddress.

    Defined at line 70 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h

  • bool operator>= (AtomicOrdering , AtomicOrdering )

    Defined at line 71 of file llvm/include/llvm/Support/AtomicOrdering.h

  • bool failed (LogicalResult Result)

    Utility function that returns true if the provided LogicalResult corresponds

    to a failure value.

    Defined at line 71 of file llvm/include/llvm/Support/LogicalResult.h

  • stable_hash stable_hash_name (StringRef Name)

    Generates a consistent hash value for a given input name across different

    program executions and environments. This function first converts the input

    name into a stable form using the `get_stable_name` function, and then

    computes a hash of this stable name. For instance, `foo.llvm.1234` would have

    the same hash as `foo.llvm.5678.

    Defined at line 71 of file llvm/include/llvm/ADT/StableHashing.h

  • tuple fcmpImpliesClass (Predicate Pred, const Function & F, Value * LHS, const APFloat & ConstRHS, bool LookThroughSrc)

    Defined at line 71 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h

  • raw_ostream & operator<< (raw_ostream & OS, const Comdat & C)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 72 of file llvm/include/llvm/IR/Comdat.h

  • sampleprof_error mergeSampleProfErrors (sampleprof_error & Accumulator, sampleprof_error Result)

    Defined at line 72 of file llvm/include/llvm/ProfileData/SampleProf.h

  • void initializeTestPassPass (PassRegistry & )

    Defined at line 260 of file llvm/unittests/MI/LiveIntervalTest.cpp

  • void reduceInlineCallSitesDeltaPass (Oracle & O, ReducerWorkItem & Program)

    Defined at line 98 of file llvm/tools/llvm-reduce/deltas/ReduceInlineCallSites.cpp

  • void reduceOpcodesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 242 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • void reduceOperandsOneDeltaPass (Oracle & , ReducerWorkItem & )

    Defined at line 89 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void reduceOperandsSkipDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 195 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp

  • void reduceOperandsToArgsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 208 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

  • void reduceArgumentsToReturnDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 235 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • error_code mapLastWindowsError ()

    Defined at line of file

  • void reduceOperandsZeroDeltaPass (Oracle & , ReducerWorkItem & )

    Defined at line 127 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void reduceInstructionsToReturnDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 252 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • error_code mapWindowsError (unsigned int EV)

    Defined at line of file

  • void reduceAtomicOrderingDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 94 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  • void reduceOperandsNaNDeltaPass (Oracle & , ReducerWorkItem & )

    Defined at line 155 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void dumpOffloadSections (const object::OffloadBinary & OB)

    Print the contents of an offload binary file

    This may contain

    multiple binaries stored in the same buffer.

    Defined at line 121 of file llvm/tools/llvm-objdump/OffloadDump.cpp

  • void reduceOperandsPoisonDeltaPass (Oracle & , ReducerWorkItem & )

    Defined at line 178 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void reduceBasicBlocksDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes out-of-chunk arguments from functions, and modifies their calls

    accordingly. It also removes allocations of out-of-chunk arguments.

    Defined at line 143 of file llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp

  • void reduceArgumentsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes out-of-chunk arguments from functions, and modifies their calls

    accordingly. It also removes allocations of out-of-chunk arguments.

    Defined at line 115 of file llvm/tools/llvm-reduce/deltas/ReduceArguments.cpp

  • void reduceAttributesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes out-of-chunk attributes from module.

    Defined at line 152 of file llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp

  • void reduceDIMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 77 of file llvm/tools/llvm-reduce/deltas/ReduceDIMetadata.cpp

  • void reduceDistinctMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 117 of file llvm/tools/llvm-reduce/deltas/ReduceDistinctMetadata.cpp

  • void reduceInstructionsMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 151 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp

  • void reduceMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes all the Named and Unnamed Metadata Nodes, as well as any debug

    functions that aren't inside the desired Chunks.

    Defined at line 79 of file llvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp

  • void reduceOperandBundesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Removes out-of-chunk operand bundles from calls.

    Defined at line 104 of file llvm/tools/llvm-reduce/deltas/ReduceOperandBundles.cpp

  • void reduceRegisterDefsMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 113 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterDefs.cpp

  • void reduceUnreachableBasicBlocksDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 192 of file llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp

  • void printDeltaPasses (raw_ostream & OS)

    Defined at line 133 of file llvm/tools/llvm-reduce/DeltaManager.cpp

  • int dlltoolDriverMain (ArrayRef<const char *> ArgsArr)

    Defined at line 301 of file llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp

  • int libDriverMain (ArrayRef ARgs)

    Defined at line 316 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • bool canPeel (const Loop * L)

    Check whether we are capable of peeling this loop.

    Defined at line 95 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void initDebugCounterOptions ()

    These are invoked internally before parsing command line options.

    This enables lazy-initialization of all the globals in libSupport, instead

    of eagerly loading everything on program startup.

    Defined at line 179 of file llvm/lib/Support/DebugCounter.cpp

  • void runDeltaPasses (TestRunner & Tester, int MaxPassIterations)

    Defined at line 176 of file llvm/tools/llvm-reduce/DeltaManager.cpp

  • void reduceConditionalsFalseDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Defined at line 73 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp

  • Value * emitAMDGPUPrintfCall (IRBuilder<> & Builder, ArrayRef Args, bool isBuffered)

    Defined at line 426 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • bool EmitAnyX86InstComments (const MCInst * MI, raw_ostream & OS, const MCInstrInfo & MCII)

    EmitAnyX86InstComments - This function decodes x86 instructions and prints

    newline terminated strings to the specified string if desired. This

    information is shown in disassembly dumps when verbose assembly is enabled.

    Defined at line 1069 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • void dumpOffloadBundleFatBinary (const object::ObjectFile & O, StringRef ArchName)

    Dump fat binary in binary clang-offload-bundler format

    Defined at line 77 of file llvm/tools/llvm-objdump/OffloadDump.cpp

  • uint32_t crc32 (ArrayRef Data)

    Compute the CRC-32 of Data.

    Defined at line 101 of file llvm/lib/Support/CRC.cpp

  • void initGraphWriterOptions ()

    Defined at line 53 of file llvm/lib/Support/GraphWriter.cpp

  • bool RetCC_X86 (unsigned int ValNo, MVT ValVT, MVT LocVT, LocInfo LocInfo, ArgFlagsTy ArgFlags, Type * OrigTy, CCState & State)

    Defined at line of file

  • void initializeCore (PassRegistry & )

    Initialize all passes linked into the Core library.

    Defined at line 59 of file llvm/lib/IR/Core.cpp

  • void initSignalsOptions ()

    Defined at line 64 of file llvm/lib/Support/Signals.cpp

  • void linkAllBuiltinGCs ()

    Ensure the definition of the builtin GCs gets linked in

    Defined at line 132 of file llvm/lib/IR/BuiltinGCs.cpp

  • size_t getDefaultPrecision (FloatStyle Style)

    Defined at line 254 of file llvm/lib/Support/NativeFormatting.cpp

  • void PrintNote (const Twine & Msg)

    Functions to print notes.

    Defined at line 52 of file llvm/lib/TableGen/Error.cpp

  • Pass * createLoadStoreVectorizerPass ()

    Create a legacy pass manager instance of the LoadStoreVectorizer pass

    Defined at line 419 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp

  • void initStatisticOptions ()

    Defined at line 49 of file llvm/lib/Support/Statistic.cpp

  • KnownBits computeKnownBits (const Value * V, const SimplifyQuery & Q, unsigned int Depth)

    Determine which bits of V are known to be either zero or one and return

    them.

    Defined at line 2381 of file llvm/lib/Analysis/ValueTracking.cpp

  • void sortBasicBlocksAndUpdateBranches (MachineFunction & MF, MachineBasicBlockComparator MBBCmp)

    Defined at line 313 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • bool optimizeGlobalCtorsList (Module & M, function_ref ShouldRemove)

    Call "ShouldRemove" for every entry in M's global_ctor list and remove the

    entries for which it returns true. Return true if anything changed.

    Defined at line 110 of file llvm/lib/Transforms/Utils/CtorUtils.cpp

  • FunctionPass * createRegionViewerPass ()

    Defined at line 203 of file llvm/lib/Analysis/RegionPrinter.cpp

  • stable_hash stableHashValue (const MachineOperand & MO)

    Defined at line 59 of file llvm/lib/CodeGen/MachineStableHash.cpp

  • void describeFuzzerIntOps (int & Ops)

    Getters for the default sets of operations, per general category.

    @

    {

    Defined at line of file

  • void PrintNote (function_ref PrintMsg)

    Defined at line 54 of file llvm/lib/TableGen/Error.cpp

  • template <>
    void invalidateParentIListOrdering<llvm::BasicBlock> (BasicBlock * BB)

    Defined at line 135 of file llvm/lib/IR/BasicBlock.cpp

  • void initTimerOptions ()

    Defined at line 569 of file llvm/lib/Support/Timer.cpp

  • void reportError (Error Err, StringRef Input)

    Various helper functions.

    Defined at line 190 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void reduceIRBlockReferencesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Remove IR BasicBlock references (the block names)

    Defined at line 47 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp

  • bool lowerConstantIntrinsics (Function & F, const TargetLibraryInfo & TLI, DominatorTree * DT)

    Defined at line 101 of file llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp

  • int createX86MacroFusionDAGMutation ()

    Note that you have to add:

    DAG.addMutation(createX86MacroFusionDAGMutation());

    to X86TargetMachine::createMachineScheduler() to have an effect.

    Defined at line 70 of file llvm/lib/Target/X86/X86MacroFusion.cpp

  • void DecodePSHUFBMask (const Constant * C, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)

    Decode a PSHUFB mask from an IR-level vector constant.

    Defined at line 116 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp

  • void getAddressSanitizerParams (const Triple & TargetTriple, int LongSize, bool IsKasan, uint64_t * ShadowBase, int * MappingScale, bool * OrShadowOffset)

    Get AddressSanitizer parameters.

    Defined at line 626 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • FunctionPass * createRegionOnlyViewerPass ()

    Defined at line 207 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void describeFuzzerFloatOps (int & Ops)

    Defined at line of file

  • void describeFuzzerFloatOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 45 of file llvm/lib/FuzzMutate/Operations.cpp

  • uint32_t crc32 (uint32_t CRC, ArrayRef Data)

    Compute the running CRC-32 of Data, with CRC being the previous value of the

    checksum.

    Defined at line 87 of file llvm/lib/Support/CRC.cpp

  • bool isPrefixedHexStyle (HexPrintStyle S)

    Defined at line 250 of file llvm/lib/Support/NativeFormatting.cpp

  • void EnablePrettyStackTrace ()

    Enables dumping a "pretty" stack trace when the program crashes.

    Defined at line 291 of file llvm/lib/Support/PrettyStackTrace.cpp

  • void PrintNote (ArrayRef NoteLoc, const Twine & Msg)

    Defined at line 58 of file llvm/lib/TableGen/Error.cpp

  • bool canPeelLastIteration (const Loop & L, ScalarEvolution & SE)

    Returns true if the last iteration of

    can be peeled off. It makes sure

    the loop exit condition can be adjusted when peeling and that the loop

    executes at least 2 iterations.

    Defined at line 479 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void reportWarning (Error Err, StringRef Input)

    Defined at line 199 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void updateCompilerUsed (Module & TheModule, const TargetMachine & TM, const StringSet<> & AsmUndefinedRefs)

    Find all globals in

    that are referenced in

    as well as the user-supplied functions definitions that

    are also libcalls, and create or update the magic "llvm.compiler_used"

    global in

    Defined at line of file

  • void updateCompilerUsed (Module & TheModule, const TargetMachine & TM, const int & AsmUndefinedRefs)

    Find all globals in

    that are referenced in

    as well as the user-supplied functions definitions that

    are also libcalls, and create or update the magic "llvm.compiler_used"

    global in

    Defined at line 123 of file llvm/lib/LTO/UpdateCompilerUsed.cpp

  • stable_hash stableHashValue (const MachineInstr & MI, bool HashVRegs, bool HashConstantPoolIndices, bool HashMemOperands)

    A stable hash value for machine instructions.

    Returns 0 if no stable hash could be computed.

    The hashing and equality testing functions ignore definitions so this is

    useful for CSE, etc.

    Defined at line 192 of file llvm/lib/CodeGen/MachineStableHash.cpp

  • FunctionPass * createLazyValueInfoPass ()

    ===--------------------------------------------------------------------===//

    createLazyValueInfoPass - This creates an instance of the LazyValueInfo

    pass.

    Defined at line 68 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • FunctionPass * createRegionPrinterPass ()

    Defined at line 197 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void avoidZeroOffsetLandingPad (MachineFunction & MF)

    If the exception section begins with a landing pad, that landing pad will

    assume a zero offset (relative to

    ) in the LSDA. However, a value of

    zero implies "no landing pad." This function inserts a NOP just before the EH

    pad label to ensure a nonzero offset.

    Defined at line 338 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const PseudoSourceValue * PSV)

    Defined at line 1052 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • void linkOcamlGCPrinter ()

    Creates an ocaml-compatible metadata printer.

    Defined at line 49 of file llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp

  • Pass * createObjCARCContractPass ()

    ===----------------------------------------------------------------------===//

    ObjCARCContract - Late ObjC ARC cleanups.

    Defined at line 765 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp

  • void initDebugOptions ()

    Defined at line 189 of file llvm/lib/Support/Debug.cpp

  • void initializePassTest1Pass (PassRegistry & )

    Defined at line of file

  • void initializePass1Pass (PassRegistry & )

    Defined at line 60 of file llvm/unittests/IR/TimePassesTest.cpp

  • void describeFuzzerControlFlowOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 75 of file llvm/lib/FuzzMutate/Operations.cpp

  • void describeFuzzerControlFlowOps (int & Ops)

    Defined at line of file

  • FunctionPass * createRegionOnlyPrinterPass ()

    Defined at line 199 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void verifySafepointIR (Function & F)

    Run the safepoint verifier over a single function. Crashes on failure.

    Defined at line 233 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • void PrintFatalNote (const Twine & Msg)

    Functions to print fatal notes.

    Defined at line 64 of file llvm/lib/TableGen/Error.cpp

  • ModulePass * createDeadArgEliminationPass ()

    This pass removes arguments from functions which are not used by the body of

    the function.

    Defined at line 118 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • void reduceIRFunctionReferencesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)

    Remove IR references from function level fields (e.g. frame object names)

    Defined at line 59 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp

  • void initializeAATestPassPass (PassRegistry & )

    Defined at line 70 of file llvm/unittests/Analysis/AliasAnalysisTest.cpp

  • void initializePass2Pass (PassRegistry & )

    Defined at line 61 of file llvm/unittests/IR/TimePassesTest.cpp

  • void initializeDebugInfoDropPass (PassRegistry & )

    Defined at line 253 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp

  • void write_integer (raw_ostream & S, unsigned int N, size_t MinDigits, IntegerStyle Style)

    Defined at line 104 of file llvm/lib/Support/NativeFormatting.cpp

  • void finalizeBundle (MachineBasicBlock & MBB, int FirstMI, int LastMI)

    finalizeBundle - Finalize a machine instruction bundle which includes

    a sequence of instructions starting from FirstMI to LastMI (exclusive).

    This routine adds a BUNDLE instruction to represent the bundle, it adds

    IsInternalRead markers to MachineOperands which are defined inside the

    bundle, and it copies externally visible defs and uses to the BUNDLE

    instruction.

    Defined at line 125 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • uint64_t getMaxFreq (const Function & F, const BlockFrequencyInfo * BFI)

    Returns the maximum frequency of a BB in a function.

    Defined at line 49 of file llvm/lib/Analysis/HeatUtils.cpp

  • uint32_t caseFoldingDjbHash (StringRef Buffer, uint32_t H)

    Computes the Bernstein hash after folding the input according to the Dwarf 5

    standard case folding rules.

    Defined at line 72 of file llvm/lib/Support/DJB.cpp

  • void PrintFatalNote (ArrayRef ErrorLoc, const Twine & Msg)

    Defined at line 69 of file llvm/lib/TableGen/Error.cpp

  • FunctionPass * createLowerInvokePass ()

    Public Interface To the LowerInvoke pass.

    Defined at line 84 of file llvm/lib/Transforms/Utils/LowerInvoke.cpp

  • basic_string filterCppOutput (StringRef Input)

    Defined at line 109 of file llvm/tools/llvm-rc/ResourceScriptCppFilter.cpp

  • void initializeTestCustomAAWrapperPassPass (PassRegistry & )

    Defined at line 135 of file llvm/unittests/Analysis/AliasAnalysisTest.cpp

  • void initializeDebugInfoDummyAnalysisPass (PassRegistry & )

    Defined at line 258 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp

  • void describeFuzzerPointerOps (int & Ops)

    Defined at line of file

  • void describeFuzzerPointerOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 84 of file llvm/lib/FuzzMutate/Operations.cpp

  • void DecodeVPERMILPMask (const Constant * C, unsigned int ElSize, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPERMILP variable mask from an IR-level vector constant.

    Defined at line 154 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp

  • ModulePass * createPrintModulePass (raw_ostream & OS, const std::string & Banner, bool ShouldPreserveUseListOrder)

    Create and return a pass that writes the module to the specified

    Defined at line 113 of file llvm/lib/IR/IRPrintingPasses.cpp

  • stable_hash stableHashValue (const MachineBasicBlock & MBB)

    Defined at line 232 of file llvm/lib/CodeGen/MachineStableHash.cpp

  • void linkErlangGCPrinter ()

    Creates an erlang-compatible metadata printer.

    Defined at line 117 of file llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp

  • void PrintFatalNote (const Record * Rec, const Twine & Msg)

    This method takes a Record and uses the source location

    stored in it.

    Defined at line 76 of file llvm/lib/TableGen/Error.cpp

  • void write_integer (raw_ostream & S, int N, size_t MinDigits, IntegerStyle Style)

    Defined at line 109 of file llvm/lib/Support/NativeFormatting.cpp

  • void simpleSimplifyCFG (Function & F, ArrayRef<BasicBlock *> BBs, bool FoldBlockIntoPredecessor)

    Constant fold terminators in

    minimally prune unreachable code from the

    function.

    Defined at line 47 of file llvm/tools/llvm-reduce/deltas/Utils.cpp

  • VPExpansionDetails expandVectorPredicationIntrinsic (VPIntrinsic & VPI, const TargetTransformInfo & TTI)

    Expand a vector predication intrinsic. Returns the kind of expansion

    that was applied to the intrinsic.

    Defined at line 713 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • bool isSafeToMoveBefore (Instruction & I, Instruction & InsertPoint, DominatorTree & DT, const PostDominatorTree * PDT, DependenceInfo * DI, bool CheckForEntireBlock)

    Return true if

    can be safely moved before

    Defined at line 272 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • void lintModule (const Module & M, bool AbortOnError)

    Lint a module.

    This should only be used for debugging, because it plays games with

    PassManagers and stuff.

    Defined at line 770 of file llvm/lib/Analysis/Lint.cpp

  • stable_hash stableHashValue (const MachineFunction & MF)

    Defined at line 240 of file llvm/lib/CodeGen/MachineStableHash.cpp

  • void PrintFatalNote (const RecordVal * RecVal, const Twine & Msg)

    This method takes a RecordVal and uses the source location

    stored in it.

    Defined at line 83 of file llvm/lib/TableGen/Error.cpp

  • bool isAllocaPromotable (const AllocaInst * AI)

    Return true if this alloca is legal for promotion.

    This is true if there are only loads, stores, and lifetime markers

    (transitively) using this alloca. This also enforces that there is only

    ever one layer of bitcasts or GEPs between the alloca and the lifetime

    markers.

    Defined at line 66 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • void describeFuzzerAggregateOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 88 of file llvm/lib/FuzzMutate/Operations.cpp

  • void describeFuzzerAggregateOps (int & Ops)

    Defined at line of file

  • MemoryEffectsBase computeFunctionBodyMemoryAccess (Function & F, AAResults & AAR)

    Returns the memory access properties of this copy of the function.

    Defined at line 267 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool inferNonMandatoryLibFuncAttrs (Module * M, StringRef Name, const TargetLibraryInfo & TLI)

    Analyze the name and prototype of the given function and set any

    applicable attributes. Note that this merely helps optimizations on an

    already existing function but does not consider mandatory attributes.

    If the library function is unavailable, this doesn't modify it.

    Returns true if any attributes were set and false otherwise.

    Defined at line 306 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • ModulePass * createBitcodeWriterPass (raw_ostream & Str, bool ShouldPreserveUseListOrder)

    Create and return a pass that writes the module to the specified

    ostream. Note that this pass is designed for use with the legacy pass

    manager.

    If

    encode use-list order so it can be

    reproduced when deserialized.

    Defined at line 72 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

  • MachineUniformityInfo computeMachineUniformityInfo (MachineFunction & F, const MachineCycleInfo & cycleInfo, const MachineDominatorTree & domTree, bool HasBranchDivergence)

    Compute uniformity information for a Machine IR function.

    If

    is false, produces a dummy result which assumes

    everything is uniform.

    Defined at line 160 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp

  • basic_string getHeatColor (uint64_t Freq, uint64_t MaxFreq)

    Calculates heat color based on current and maximum frequencies.

    Defined at line 59 of file llvm/lib/Analysis/HeatUtils.cpp

  • int & getKnownAssumptionStrings ()

    A set of known assumption strings that are accepted without warning and

    which can be recommended as typo correction.

    Defined at line 102 of file llvm/lib/IR/Assumptions.cpp

  • FunctionPass * createSafepointIRVerifierPass ()

    Create an instance of the safepoint verifier pass which can be added to

    a pass pipeline to check for relocation bugs.

    Defined at line 240 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • FunctionPass * createCFGuardCheckPass ()

    Insert Control FLow Guard checks on indirect function calls.

    Defined at line 308 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp

  • stable_hash StructuralHash (const Function & F, bool DetailedHash)

    Returns a hash of the function

    Parameters

    F The function to hash.
    DetailedHash Whether or not to encode additional information in the hash. The additional information added into the hash when this flag is set to true includes instruction and operand type information.

    Defined at line 329 of file llvm/lib/IR/StructuralHash.cpp

  • void write_integer (raw_ostream & S, unsigned long N, size_t MinDigits, IntegerStyle Style)

    Defined at line 114 of file llvm/lib/Support/NativeFormatting.cpp

  • void printDwarfExpression (const DWARFExpression * E, raw_ostream & OS, DIDumpOptions DumpOpts, DWARFUnit * U, bool IsEH)

    Print a Dwarf expression/

    Parameters

    E to be printed
    OS to this stream
    GetNameForDWARFReg callback to return dwarf register name

    Defined at line 166 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp

  • int DiffFilesWithTolerance (StringRef FileA, StringRef FileB, double AbsTol, double RelTol, std::string * Error)

    DiffFilesWithTolerance - Compare the two files specified, returning 0 if

    the files match, 1 if they are different, and 2 if there is a file error.

    This function allows you to specify an absolute and relative FP error that

    is allowed to exist. If you specify a string to fill in for the error

    option, it will set the string to an error message if an error occurs, or

    if the files are different.

    Defined at line 178 of file llvm/lib/Support/FileUtilities.cpp

  • bool peelLoop (Loop * L, unsigned int PeelCount, bool PeelLast, LoopInfo * LI, ScalarEvolution * SE, DominatorTree & DT, AssumptionCache * AC, bool PreserveLCSSA, int & VMap)

    VMap is the value-map that maps instructions from the original loop to

    instructions in the last peeled-off iteration. If

    is true, peel

    off the last

    iterations from

    (canPeelLastIteration must be

    true for

    otherwise peel off the first

    iterations.

    Defined at line of file

  • bool peelLoop (Loop * L, unsigned int PeelCount, bool PeelLast, LoopInfo * LI, ScalarEvolution * SE, DominatorTree & DT, AssumptionCache * AC, bool PreserveLCSSA, ValueToValueMapTy & VMap)

    Peel off the first

    iterations of loop

    Note that this does not peel them off as a single straight-line block.

    Rather, each iteration is peeled off separately, and needs to check the

    exit condition.

    For loops that dynamically execute

    iterations or less

    this provides a benefit, since the peeled off iterations, which account

    for the bulk of dynamic execution, can be further simplified by scalar

    optimizations.

    Defined at line 1102 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void findArrayDimensions (ScalarEvolution & SE, SmallVectorImpl<const SCEV *> & Terms, SmallVectorImpl<const SCEV *> & Sizes, const SCEV * ElementSize)

    Compute the array dimensions Sizes from the set of Terms extracted from

    the memory access function of this SCEVAddRecExpr (second step of

    delinearization).

    Defined at line 282 of file llvm/lib/Analysis/Delinearization.cpp

  • MVT getMVTForLLT (LLT Ty)

    Get a rough equivalent of an MVT for a given LLT. MVT can't distinguish

    pointers, so these will convert to a plain integer.

    Defined at line 48 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp

  • void describeFuzzerVectorOps (int & Ops)

    Defined at line of file

  • void describeFuzzerVectorOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 94 of file llvm/lib/FuzzMutate/Operations.cpp

  • bool shouldPrintBeforeSomePass ()

    Returns true if printing before/after some pass is enabled, whether all

    passes or a specific pass.

    Defined at line 115 of file llvm/lib/IR/PrintPasses.cpp

  • void PrintWarning (const Twine & Msg)

    Functions to print warnings.

    Defined at line 90 of file llvm/lib/TableGen/Error.cpp

  • ModulePass * createDeadArgHackingPass ()

    DeadArgHacking pass - Same as DAE, but delete arguments of external

    functions as well. This is definitely not safe, and should only be used by

    bugpoint.

    Defined at line 120 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • void removeASanIncompatibleFnAttributes (Function & F, bool ReadsArgMem)

    Remove memory attributes that are incompatible with the instrumentation

    added by AddressSanitizer and HWAddressSanitizer.

    - indicates whether function arguments may be read by

    instrumentation and require removing `writeonly` attributes.

    Defined at line 635 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • FunctionPass * createDeadCodeEliminationPass ()

    ===----------------------------------------------------------------------===//

    DeadCodeElimination - This pass is more powerful than DeadInstElimination,

    because it is worklist driven that can potentially revisit instructions when

    their other instructions become dead, to eliminate chains of dead

    computations.

    Defined at line 145 of file llvm/lib/Transforms/Scalar/DCE.cpp

  • bool expandRemainder (BinaryOperator * Rem)

    Generate code to calculate the remainder of two integers, replacing Rem

    with the generated code. This currently generates code using the udiv

    expansion, but future work includes generating more specialized code,

    e.g. when more information about the operands are known. Implements both

    32bit and 64bit scalar division.

    Replace Rem with generated code.

    Defined at line 354 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • void __register_frame (void * )

    Defined at line of file

  • FunctionPass * createX86ISelDag (X86TargetMachine & TM, CodeGenOptLevel OptLevel)

    This pass converts a legalized DAG into a X86-specific DAG,

    ready for instruction scheduling.

    Defined at line 6746 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • bool inferNonMandatoryLibFuncAttrs (Function & F, const TargetLibraryInfo & TLI)

    Defined at line 314 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void DecodeVPERMIL2PMask (const Constant * C, unsigned int M2Z, unsigned int ElSize, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPERMILP2 variable mask from an IR-level vector constant.

    Defined at line 189 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp

  • unsigned int getDefaultMaxUsesToExploreForCaptureTracking ()

    getDefaultMaxUsesToExploreForCaptureTracking - Return default value of

    the maximal number of uses to explore before giving up. It is used by

    PointerMayBeCaptured family analysis.

    Defined at line 50 of file llvm/lib/Analysis/CaptureTracking.cpp

  • void lintFunction (const Function & F, bool AbortOnError)

    Lint a function.

    Defined at line 750 of file llvm/lib/Analysis/Lint.cpp

  • FunctionPass * createDependenceAnalysisWrapperPass ()

    createDependenceAnalysisPass - This creates an instance of the

    DependenceAnalysis wrapper pass.

    Defined at line 196 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • EVT getApproximateEVTForLLT (LLT Ty, LLVMContext & Ctx)

    Defined at line 57 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp

  • void reportAndResetTimings (raw_ostream * OutStream)

    If -time-passes has been specified, report the timings immediately and then

    reset the timers to zero. By default it uses the stream created by

    CreateInfoOutputFile().

    Defined at line 151 of file llvm/lib/IR/PassTimingInfo.cpp

  • bool shouldPrintAfterSomePass ()

    Defined at line 119 of file llvm/lib/IR/PrintPasses.cpp

  • void PrintWarning (ArrayRef WarningLoc, const Twine & Msg)

    Defined at line 94 of file llvm/lib/TableGen/Error.cpp

  • void widenWidenableBranch (BranchInst * WidenableBR, Value * NewCond)

    Given a branch we know is widenable (defined per Analysis/GuardUtils.h),

    widen it such that condition 'NewCond' is also known to hold on the taken

    path. Branch remains widenable after transform.

    Defined at line 82 of file llvm/lib/Transforms/Utils/GuardUtils.cpp

  • bool lowerAtomicRMWInst (AtomicRMWInst * RMWI)

    Convert the given RMWI into primitive load and stores,

    assuming that doing so is legal. Return true if the lowering

    succeeds.

    Defined at line 125 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp

  • void __deregister_frame (void * )

    Defined at line of file

  • bool getAsUnsignedInteger (StringRef Str, unsigned int Radix, unsigned long long & Result)

    GetAsUnsignedInteger - Workhorse method that converts a integer character

    sequence of radix up to 36 to an unsigned long long value.

    Defined at line 482 of file llvm/lib/Support/StringRef.cpp

  • void describeFuzzerUnaryOperations (int & Ops)

    Defined at line of file

  • void describeFuzzerUnaryOperations (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 70 of file llvm/lib/FuzzMutate/Operations.cpp

  • void write_integer (raw_ostream & S, long N, size_t MinDigits, IntegerStyle Style)

    Defined at line 119 of file llvm/lib/Support/NativeFormatting.cpp

  • std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> getDefaultInlineOrder (FunctionAnalysisManager & FAM, const InlineParams & Params, ModuleAnalysisManager & MAM, Module & M)

    Defined at line 287 of file llvm/lib/Analysis/InlineOrder.cpp

  • Constant * ConstantFoldCastInstruction (unsigned int opcode, Constant * V, Type * DestTy)

    Constant fold various types of instruction...

    Defined at line 124 of file llvm/lib/IR/ConstantFold.cpp

  • bool LoopRotation (Loop * L, LoopInfo * LI, const TargetTransformInfo * TTI, AssumptionCache * AC, DominatorTree * DT, ScalarEvolution * SE, MemorySSAUpdater * MSSAU, const SimplifyQuery & SQ, bool RotationOnly, unsigned int Threshold, bool IsUtilMode, bool PrepareForLTO)

    Convert a loop into a loop with bottom test. It may

    perform loop latch simplication as well if the flag RotationOnly

    is false. The flag Threshold represents the size threshold of the loop

    header. If the loop header's size exceeds the threshold, the loop rotation

    will give up. The flag IsUtilMode controls the heuristic used in the

    LoopRotation. If it is true, the profitability heuristic will be ignored.

    Defined at line 966 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  • basic_string getHeatColor (double Percent)

    Calculates heat color based on percent of "hotness".

    Defined at line 66 of file llvm/lib/Analysis/HeatUtils.cpp

  • void initializeInstCombine (PassRegistry & )

    Initialization Routines

    Defined at line 6169 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void PrintWarning (const char * Loc, const Twine & Msg)

    Defined at line 98 of file llvm/lib/TableGen/Error.cpp

  • FunctionPass * createCFGuardDispatchPass ()

    Insert Control FLow Guard dispatches on indirect function calls.

    Defined at line 312 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp

  • ModulePass * createExpandVariadicsPass (ExpandVariadicsMode )

    Defined at line 1010 of file llvm/lib/Transforms/IPO/ExpandVariadics.cpp

  • FunctionPass * createPrintFunctionPass (raw_ostream & OS, const std::string & Banner)

    Create and return a pass that prints functions to the specified

    as they are processed.

    Defined at line 119 of file llvm/lib/IR/IRPrintingPasses.cpp

  • bool isLegalToPromote (const CallBase & CB, Function * Callee, const char ** FailureReason)

    Return true if the given indirect call site can be made to call

    This function ensures that the number and type of the call site's arguments

    and return value match those of the given function. If the types do not

    match exactly, they must at least be bitcast compatible. If

    is non-null and the indirect call cannot be promoted, the failure reason

    will be stored in it.

    Defined at line 397 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • void DecodeInsertElementMask (unsigned int NumElts, unsigned int Idx, unsigned int Len, SmallVectorImpl<int> & ShuffleMask)

    Insert the bottom Len elements from a second source into a vector starting at

    element Idx.

    Defined at line 50 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Matcher * ConvertPatternToMatcher (const PatternToMatch & Pattern, unsigned int Variant, const CodeGenDAGPatterns & CGP)

    ConvertPatternToMatcher - Create the matcher for the specified pattern with

    the specified variant. If the variant number is invalid, this returns null.

    Defined at line 1074 of file llvm/utils/TableGen/DAGISelMatcherGen.cpp

  • void extractInstructionFeatures (llvm::SmallVectorImpl<LRStartEndInfo> & LRPosInfo, MLModelRunner * RegallocRunner, function_ref<int (SlotIndex)> GetOpcode, function_ref<float (SlotIndex)> GetMBBFreq, function_ref<MachineBasicBlock *(SlotIndex)> GetMBBReference, const int InstructionsIndex, const int InstructionsMappingIndex, const int MBBFreqIndex, const int MBBMappingIndex, SlotIndex LastIndex)

    Defined at line of file

  • LDVImpl * makeVarLocBasedLiveDebugValues ()

    Factory functions for LiveDebugValues implementations.

    Defined at line 2407 of file llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp

  • bool isBitcodeWriterPass (Pass * P)

    Check whether a pass is a BitcodeWriterPass.

    Defined at line 77 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

  • bool hasInstrProfHashMismatch (MachineFunction & MF)

    This checks if the source of this function has drifted since this binary was

    profiled previously.

    For now, we are piggy backing on what PGO does to

    detect this with instrumented profiles. PGO emits an hash of the IR and

    checks if the hash has changed. Advanced basic block layout is usually done

    on top of PGO optimized binaries and hence this check works well in

    practice.

    Defined at line 357 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • void describeFuzzerOtherOps (std::vector<fuzzerop::OpDescriptor> & Ops)

    Defined at line 80 of file llvm/lib/FuzzMutate/Operations.cpp

  • void describeFuzzerOtherOps (int & Ops)

    Defined at line of file

  • stable_hash StructuralHash (const GlobalVariable & G)

    Returns a hash of the global variable

    Defined at line 335 of file llvm/lib/IR/StructuralHash.cpp

  • AssumeInst * buildAssumeFromInst (Instruction * I)

    Build a call to llvm.assume to preserve informations that can be derived

    from the given instruction.

    If no information derived from

    this call returns null.

    The returned instruction is not inserted anywhere.

    Defined at line 284 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp

  • FunctionPass * createX86GlobalBaseRegPass ()

    This pass initializes a global base register for PIC on x86-32.

    Defined at line 10516 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • char * itaniumDemangle (basic_string_view mangled_name, bool ParseParams)

    Returns a non-NULL pointer to a NUL-terminated C style string

    that should be explicitly freed, if successful. Otherwise, may return

    nullptr if mangled_name is not a valid mangling or is nullptr.

    Defined at line 365 of file llvm/lib/Demangle/ItaniumDemangle.cpp

  • void write_integer (raw_ostream & S, unsigned long long N, size_t MinDigits, IntegerStyle Style)

    Defined at line 124 of file llvm/lib/Support/NativeFormatting.cpp

  • int getLazyIRModule (int Buffer, SMDiagnostic & Err, LLVMContext & Context, bool ShouldLazyLoadMetadata)

    If the given MemoryBuffer holds a bitcode image, return a Module

    for it which does lazy deserialization of function bodies. Otherwise,

    attempt to parse it as LLVM Assembly and return a fully populated

    Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode

    reader to optionally enable lazy metadata loading. This takes ownership

    of

    Defined at line of file

  • bool thinLTOPropagateFunctionAttrs (ModuleSummaryIndex & Index, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)

    Propagate function attributes for function summaries along the index's

    callgraph during thinlink

    Defined at line 419 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void createMemCpyLoopUnknownSize (Instruction * InsertBefore, Value * SrcAddr, Value * DstAddr, Value * CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo & TTI, optional AtomicSize)

    Emit a loop implementing the semantics of llvm.memcpy where the size is not

    a compile-time constant. Loop will be inserted at

    Defined at line 356 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • ModuleSummaryIndex buildModuleSummaryIndex (const Module & M, std::function<BlockFrequencyInfo *(const Function &)> GetBFICallback, ProfileSummaryInfo * PSI, function GetSSICallback)

    Direct function to compute a

    from a given module.

    If operating within a pass manager which has defined ways to compute the

    for a given function, that can be provided via

    a std::function callback. Otherwise, this routine will manually construct

    that information.

    Defined at line 947 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • PeelingPreferences gatherPeelingPreferences (Loop * L, ScalarEvolution & SE, const TargetTransformInfo & TTI, optional UserAllowPeeling, optional UserAllowProfileBasedPeeling, bool UnrollingSpecficValues)

    Defined at line 1056 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • ModulePass * createCallGraphViewerPass ()

    Create methods available outside of this file, to use them

    "include/llvm/LinkAllPasses.h". Otherwise the pass would be deleted by

    the link time optimization.

    Defined at line 353 of file llvm/lib/Analysis/CallPrinter.cpp

  • bool operator== (const HTTPRequest & A, const HTTPRequest & B)

    Defined at line of file

  • Timer * getPassTimer (Pass * )

    Request the timer for this legacy-pass-manager's pass instance.

    Defined at line 142 of file llvm/lib/IR/PassTimingInfo.cpp

  • void PrintError (const Twine & Msg)

    Functions to print errors.

    Defined at line 104 of file llvm/lib/TableGen/Error.cpp

  • bool isCFGuardFunction (const GlobalValue * GV)

    Defined at line 316 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp

  • FunctionPass * createLowerSwitchPass ()

    createLowerSwitchPass - Interface to this file...

    Defined at line 592 of file llvm/lib/Transforms/Utils/LowerSwitch.cpp

  • LDVImpl * makeInstrRefBasedLiveDebugValues ()

    Defined at line 3884 of file llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp

  • bool getAsSignedInteger (StringRef Str, unsigned int Radix, long long & Result)

    Defined at line 492 of file llvm/lib/Support/StringRef.cpp

  • void EnablePrettyStackTraceOnSigInfoForThisThread (bool ShouldEnable)

    Enables (or disables) dumping a "pretty" stack trace when the user sends

    SIGINFO or SIGUSR1 to the current process.

    This is a per-thread decision so that a program can choose to print stack

    traces only on a primary thread, or on all threads that use

    PrettyStackTraceEntry.

    Defined at line 299 of file llvm/lib/Support/PrettyStackTrace.cpp

  • void DecodeVPPERMMask (const Constant * C, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPPERM variable mask from an IR-level vector constant.

    Defined at line 244 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp

  • basic_string getCodeGenDataSectionName (CGDataSectKind CGSK, ObjectFormatType OF, bool AddSegmentInfo)

    Defined at line 128 of file llvm/lib/CGData/CodeGenData.cpp

  • int finalizeBundle (MachineBasicBlock & MBB, int FirstMI)

    finalizeBundle - Same functionality as the previous finalizeBundle except

    the last instruction in the bundle is not provided as an input. This is

    used in cases where bundles are pre-determined by marking instructions

    with 'InsideBundle' marker. It returns the MBB instruction iterator that

    points to the end of the bundle.

    Defined at line 247 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • bool convertUsersOfConstantsToInstructions (ArrayRef Consts, Function * RestrictToFunc, bool RemoveDeadConstants, bool IncludeSelf)

    Replace constant expressions users of the given constants with

    instructions. Return whether anything was changed.

    Passing RestrictToFunc will restrict the constant replacement

    to the passed in functions scope, as opposed to the replacements

    occurring at module scope.

    RemoveDeadConstants by default will remove all dead constants as

    the final step of the function after replacement, when passed

    false it will skip this final step.

    If

    is enabled, also convert the passed constants themselves

    to instructions, rather than only their users.

    Defined at line 51 of file llvm/lib/IR/ReplaceConstant.cpp

  • ModulePass * createCallGraphDOTPrinterPass ()

    Defined at line 355 of file llvm/lib/Analysis/CallPrinter.cpp

  • LLT getLLTForMVT (MVT Ty)

    Get a rough equivalent of an LLT for a given MVT. LLT does not yet support

    scalarable vector types, and will assert if used.

    Defined at line 66 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp

  • bool shouldPrintBeforePass (StringRef PassID)

    Returns true if we should print before/after a specific pass. The argument

    should be the pass ID, e.g. "instcombine".

    Defined at line 132 of file llvm/lib/IR/PrintPasses.cpp

  • bool hasProfMD (const Instruction & I)

    Checks if an Instruction has MD_prof Metadata

    Defined at line 119 of file llvm/lib/IR/ProfDataUtils.cpp

  • void PrintError (function_ref PrintMsg)

    Defined at line 106 of file llvm/lib/TableGen/Error.cpp

  • void write_integer (raw_ostream & S, long long N, size_t MinDigits, IntegerStyle Style)

    Defined at line 129 of file llvm/lib/Support/NativeFormatting.cpp

  • Value * buildAtomicRMWValue (BinOp Op, IRBuilderBase & Builder, Value * Loaded, Value * Val)

    Emit IR to implement the given atomicrmw operation on values in registers,

    returning the new value.

    Defined at line 52 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp

  • void OptimizeMatcher (int & Matcher, const CodeGenDAGPatterns & CGP)

    Defined at line 628 of file llvm/utils/TableGen/DAGISelMatcherOpt.cpp

  • std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> getInlineOrder (FunctionAnalysisManager & FAM, const InlineParams & Params, ModuleAnalysisManager & MAM, Module & M)

    Defined at line 312 of file llvm/lib/Analysis/InlineOrder.cpp

  • bool isSafeToMoveBefore (BasicBlock & BB, Instruction & InsertPoint, DominatorTree & DT, const PostDominatorTree * PDT, DependenceInfo * DI)

    Return true if all instructions (except the terminator) in

    can be

    safely moved before

    Defined at line 368 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • void SplitModule (Module & M, unsigned int N, function_ref<void (int)> ModuleCallback, bool PreserveLocals, bool RoundRobin)

    Splits the module M into N linkable partitions. The function ModuleCallback

    is called N times passing each individual partition as the MPart argument.

    PreserveLocals: Split without externalizing locals.

    RoundRobin: Use round-robin distribution of functions to modules instead

    of the default name-hash-based one.

    FIXME: This function does not deal with the somewhat subtle symbol

    visibility issues around module splitting, including (but not limited to):

    - Internal symbols should not collide with symbols defined outside the

    module.

    - Internal symbols defined in module-level inline asm should be visible to

    each partition.

    Defined at line of file

  • void SplitModule (Module & M, unsigned int N, function_ref ModuleCallback, bool PreserveLocals, bool RoundRobin)

    Splits the module M into N linkable partitions. The function ModuleCallback

    is called N times passing each individual partition as the MPart argument.

    PreserveLocals: Split without externalizing locals.

    RoundRobin: Use round-robin distribution of functions to modules instead

    of the default name-hash-based one.

    FIXME: This function does not deal with the somewhat subtle symbol

    visibility issues around module splitting, including (but not limited to):

    - Internal symbols should not collide with symbols defined outside the

    module.

    - Internal symbols defined in module-level inline asm should be visible to

    each partition.

    Defined at line 238 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, FunctionType * T, AttributeList AttributeList)

    Calls getOrInsertFunction() and then makes sure to add mandatory

    argument attributes.

    Defined at line 1464 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool isCheckForZeroAndMulWithOverflow (Value * Op0, Value * Op1, bool IsAnd)

    Defined at line 67 of file llvm/lib/Analysis/OverflowInstAnalysis.cpp

  • bool hasLessThanNumFused (const SUnit & SU, unsigned int FuseLimit)

    Checks if the number of cluster edges between SU and its predecessors is

    less than FuseLimit

    Defined at line 46 of file llvm/lib/CodeGen/MacroFusion.cpp

  • bool shouldPrintAfterPass (StringRef PassID)

    Defined at line 136 of file llvm/lib/IR/PrintPasses.cpp

  • void PrintError (ArrayRef ErrorLoc, const Twine & Msg)

    Defined at line 110 of file llvm/lib/TableGen/Error.cpp

  • int TableGenMain (const char * argv0, TableGenMainFn MainFn)

    Defined at line 211 of file llvm/lib/TableGen/Main.cpp

  • void setWidenableBranchCond (BranchInst * WidenableBR, Value * Cond)

    Given a branch we know is widenable (defined per Analysis/GuardUtils.h),

    *set* it's condition such that (only) 'Cond' is known to hold on the taken

    path and that the branch remains widenable after transform.

    Defined at line 108 of file llvm/lib/Transforms/Utils/GuardUtils.cpp

  • const char * archToWindowsSDKArch (ArchType Arch)

    Windows SDKs and VC Toolchains group their contents into subdirectories based

    on the target architecture. This function converts an llvm::Triple::ArchType

    to the corresponding subdirectory name.

    Defined at line 262 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • bool debuginfoShouldUseDebugInstrRef (const Triple & T)

    Defined at line 156 of file llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp

  • bool verifyVPlanIsValid (const VPlan & Plan, bool VerifyLate)

    Verify invariants for general VPlans. If

    is passed, skip some

    checks that are not applicable at later stages of the transform pipeline.

    Currently it checks the following:

    1. Region/Block verification: Check the Region/Block verification

    invariants for every region in the H-CFG.

    2. all phi-like recipes must be at the beginning of a block, with no other

    recipes in between. Note that currently there is still an exception for

    VPBlendRecipes.

    Defined at line 549 of file llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp

  • void collectParametricTerms (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Terms)

    Collect parametric terms occurring in step expressions (first step of

    delinearization).

    Defined at line 176 of file llvm/lib/Analysis/Delinearization.cpp

  • bool UpgradeIntrinsicFunction (Function * F, Function *& NewFn, bool CanUpgradeDebugIntrinsicsToRecords)

    This is a more granular function that simply checks an intrinsic function

    for upgrading, and returns true if it requires upgrading. It may return

    null in NewFn if the all calls to the original intrinsic function

    should be transformed to non-function-call instructions.

    Defined at line 1816 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool isDereferenceablePointer (const Value * V, Type * Ty, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)

    Return true if this is always a dereferenceable pointer. If the context

    instruction is specified perform context-sensitive analysis and return true

    if the pointer is dereferenceable at the specified instruction.

    Defined at line 249 of file llvm/lib/Analysis/Loads.cpp

  • int compileModuleWithNewPM (StringRef Arg0, std::unique_ptr<Module> M, std::unique_ptr<MIRParser> MIR, std::unique_ptr<TargetMachine> Target, std::unique_ptr<ToolOutputFile> Out, std::unique_ptr<ToolOutputFile> DwoOut, LLVMContext & Context, const TargetLibraryInfoImpl & TLII, VerifierKind VK, StringRef PassPipeline, CodeGenFileType FileType)

    Defined at line of file

  • APInt operator- (APInt )

    Defined at line 2189 of file llvm/include/llvm/ADT/APInt.h

  • unsigned int getAutoSenseRadix (StringRef & Str)

    Defined at line 383 of file llvm/lib/Support/StringRef.cpp

  • void PrintError (const char * Loc, const Twine & Msg)

    Defined at line 114 of file llvm/lib/TableGen/Error.cpp

  • Pass * createLoopExtractorPass ()

    createLoopExtractorPass - This pass extracts all natural loops from the

    program into a function if it can.

    Defined at line 110 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp

  • FunctionPass * createDeadStoreEliminationPass ()

    ===----------------------------------------------------------------------===//

    DeadStoreElimination - This pass deletes stores that are post-dominated by

    must-aliased stores and are not loaded used between the stores.

    Defined at line 2737 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void DecodeMOVHLPSMask (unsigned int NElts, SmallVectorImpl<int> & ShuffleMask)

    <

    3,1> or

    <

    6,7,2,3>

    Defined at line 61 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • const X86FoldTableEntry * lookupTwoAddrFoldTable (unsigned int RegOp)

    Look up the memory folding table entry for folding a load and a store into

    operand 0.

    Defined at line 124 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • void PromoteMemToReg (ArrayRef Allocas, DominatorTree & DT, AssumptionCache * AC)

    Promote the specified list of alloca instructions into scalar

    registers, inserting PHI nodes as appropriate.

    This function makes use of DominanceFrontier information. This function

    does not modify the CFG of the function at all. All allocas must be from

    the same function.

    Defined at line 1206 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • void EmitMatcherTable (Matcher * Matcher, const CodeGenDAGPatterns & CGP, raw_ostream & OS)

    Defined at line 1364 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • bool shouldOptimizeForSize (const MachineBasicBlock * MBB, ProfileSummaryInfo * PSI, MBFIWrapper * MBFIWrapper, PGSOQueryType QueryType)

    Returns true if machine basic block

    is suggested to be size-optimized

    based on the profile.

    Defined at line 46 of file llvm/lib/CodeGen/MachineSizeOpts.cpp

  • FunctionPass * createRegionInfoPass ()

    ===--------------------------------------------------------------------===//

    createRegionInfoPass - This pass finds all single entry single exit regions

    in a function and builds the region hierarchy.

    Defined at line 175 of file llvm/lib/Analysis/RegionInfo.cpp

  • bool isBranchWeightMD (const MDNode * ProfileData)

    Checks if an MDNode contains Branch Weight Metadata

    Defined at line 123 of file llvm/lib/IR/ProfDataUtils.cpp

  • hash_code hash_value (const MCRegister & )

    Defined at line 126 of file llvm/include/llvm/MC/MCRegister.h

  • void PrintError (const Record * Rec, const Twine & Msg)

    This method takes a Record and uses the source location

    stored in it.

    Defined at line 120 of file llvm/lib/TableGen/Error.cpp

  • int TableGenMain (const char * argv0, MultiFileTableGenMainFn MainFn)

    Defined at line 130 of file llvm/lib/TableGen/Main.cpp

  • FunctionPass * createCleanupLocalDynamicTLSPass ()

    This pass combines multiple accesses to local-dynamic TLS variables so that

    the TLS base address for the module is only fetched once per execution path

    through the function.

    Defined at line 10628 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void initializeModuleNDMPass (PassRegistry & )

    Defined at line 654 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • Expected<std::string> computeArchiveRelativePath (StringRef From, StringRef To)

    Compute the relative path from From to To.

    Defined at line 999 of file llvm/lib/Object/ArchiveWriter.cpp

  • void write_hex (raw_ostream & S, uint64_t N, HexPrintStyle Style, optional Width)

    Defined at line 134 of file llvm/lib/Support/NativeFormatting.cpp

  • void appendToGlobalCtors (Module & M, Function * F, int Priority, Constant * Data)

    Append F to the list of global ctors of module M with the given Priority.

    This wraps the function in the appropriate structure and stores it along

    side other global constructors. For details see

    https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable

    Defined at line 74 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • const llvm::fltSemantics & getFltSemanticForLLT (LLT Ty)

    Get the appropriate floating point arithmetic semantic based on the bit size

    of the given scalar LLT.

    Defined at line 74 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp

  • bool canUseDebuginfod ()

    Returns false if a debuginfod lookup can be determined to have no chance of

    succeeding.

    Defined at line 67 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void handleExecNameEncodedOptimizerOpts (StringRef ExecName)

    Handle optimizer options which are encoded in the executable name.

    Same semantics as in 'handleExecNameEncodedBEOpts'.

    Defined at line 68 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp

  • void printLLVMNameWithoutPrefix (raw_ostream & OS, StringRef Name)

    Print out a name of an LLVM value without any prefixes.

    The name is surrounded with ""'s and escaped if it has any special or

    non-printable characters in it.

    Defined at line 462 of file llvm/lib/IR/AsmWriter.cpp

  • bool shouldPrintBeforeAll ()

    Returns true if we should print before/after all passes.

    Defined at line 128 of file llvm/lib/IR/PrintPasses.cpp

  • stable_hash StructuralHash (const Module & M, bool DetailedHash)

    Returns a hash of the module

    by hashing all functions and global

    variables contained within.

    Parameters

    M The module to hash.
    DetailedHash Whether or not to encode additional information in the function hashes that composed the module hash.

    Defined at line 339 of file llvm/lib/IR/StructuralHash.cpp

  • void setBugReportMsg (const char * Msg)

    Replaces the generic bug report message that is output upon

    a crash.

    Defined at line 220 of file llvm/lib/Support/PrettyStackTrace.cpp

  • void PrintError (const RecordVal * RecVal, const Twine & Msg)

    This method takes a RecordVal and uses the source location

    stored in it.

    Defined at line 126 of file llvm/lib/TableGen/Error.cpp

  • bool expandDivision (BinaryOperator * Div)

    Generate code to divide two integers, replacing Div with the generated

    code. This currently generates code similarly to compiler-rt's

    implementations, but future work includes generating more specialized code

    when more information about the operands are known.

    Replace Div with generated code.

    Defined at line 406 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • const char * archToLegacyVCArch (ArchType Arch)

    Similar to the above function, but for Visual Studios before VS2017.

    Defined at line 278 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • void initializeFPassPass (PassRegistry & )

    Defined at line 658 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • bool consumeUnsignedInteger (StringRef & Str, unsigned int Radix, unsigned long long & Result)

    Defined at line 404 of file llvm/lib/Support/StringRef.cpp

  • unsigned int GetSuccessorNumber (const BasicBlock * BB, const BasicBlock * Succ)

    GetSuccessorNumber - Search for the specified successor of basic block BB

    and return its position in the terminator instruction's list of

    successors. It is an error to call this with a block that is not a

    successor.

    Defined at line 80 of file llvm/lib/Analysis/CFG.cpp

  • void install_fatal_error_handler (fatal_error_handler_t handler, void * user_data)

    install_fatal_error_handler - Installs a new error handler to be used

    whenever a serious (non-recoverable) error is encountered by LLVM.

    If no error handler is installed the default is to print the error message

    to stderr, and call exit(1). If an error handler is installed then it is

    the handler's responsibility to log the message, it will no longer be

    printed to stderr. If the error handler returns, then exit(1) will be

    called.

    It is dangerous to naively use an error handler which throws an exception.

    Even though some applications desire to gracefully recover from arbitrary

    faults, blindly throwing exceptions through unfamiliar code isn't a way to

    achieve this.

    Parameters

    user_data - An argument which will be passed to the install error handler.

    Defined at line 77 of file llvm/lib/Support/ErrorHandling.cpp

  • bool finalizeBundles (MachineFunction & MF)

    finalizeBundles - Finalize instruction bundles in the specified

    MachineFunction. Return true if any bundles are finalized.

    Defined at line 260 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • TinyPtrVector<DbgVariableRecord *> findDVRDeclares (Value * V)

    Finds dbg.declare records declaring local variables as living in the

    memory that 'V' points to.

    Defined at line 48 of file llvm/lib/IR/DebugInfo.cpp

  • bool shouldPrintAfterAll ()

    Defined at line 130 of file llvm/lib/IR/PrintPasses.cpp

  • void initializeCGPassPass (PassRegistry & )

    Defined at line 657 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • Constant * ConstantFoldSelectInstruction (Constant * Cond, Constant * V1, Constant * V2)

    Attempt to constant fold a select instruction with the specified

    operands. The constant result is returned if successful; if not, null is

    returned.

    Defined at line 256 of file llvm/lib/IR/ConstantFold.cpp

  • void write_double (raw_ostream & S, double D, FloatStyle Style, optional Precision)

    Defined at line 164 of file llvm/lib/Support/NativeFormatting.cpp

  • int PrepareToSplitEntryBlock (BasicBlock & BB, int IP)

    Instrumentation passes often insert conditional checks into entry blocks.

    Call this function before splitting the entry block to move instructions

    that must remain in the entry block up before the split point. Static

    allocas and llvm.localescape calls, for example, must remain in the entry

    block.

    Defined at line of file

  • ilist_iterator_w_bits PrepareToSplitEntryBlock (BasicBlock & BB, ilist_iterator_w_bits IP)

    Instrumentation passes often insert conditional checks into entry blocks.

    Call this function before splitting the entry block to move instructions

    that must remain in the entry block up before the split point. Static

    allocas and llvm.localescape calls, for example, must remain in the entry

    block.

    Defined at line 61 of file llvm/lib/Transforms/Utils/Instrumentation.cpp

  • FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, FunctionType * T)

    Defined at line 1537 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void computePeelCount (Loop * L, unsigned int LoopSize, TargetTransformInfo::PeelingPreferences & PP, unsigned int TripCount, DominatorTree & DT, ScalarEvolution & SE, const TargetTransformInfo & TTI, AssumptionCache * AC, unsigned int Threshold)

    Return the number of iterations we want to peel off.

    Defined at line 751 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void viewRegion (llvm::RegionInfo * RI)

    Open a viewer to display the GraphViz vizualization of the analysis

    result.

    Practical to call in the debugger.

    Includes the instructions in each BasicBlock.

    Parameters

    RI The analysis to display.

    Defined at line 237 of file llvm/lib/Analysis/RegionPrinter.cpp

  • StringRef getEHPersonalityName (EHPersonality Pers)

    Defined at line 58 of file llvm/lib/IR/EHPersonalities.cpp

  • bool isValueProfileMD (const MDNode * ProfileData)

    Checks if an MDNode contains value profiling Metadata

    Defined at line 127 of file llvm/lib/IR/ProfDataUtils.cpp

  • unsigned int Log2 (Align )

    Returns the log2 of the alignment.

    Defined at line 197 of file llvm/include/llvm/Support/Alignment.h

  • bool isCurrentDebugType (const char * Type, int Level)

    Return true if the specified string is the debug type

    specified on the command line, or if none was specified on the command line

    with the -debug-only=X option.

    Defined at line 81 of file llvm/lib/Support/Debug.cpp

  • void PrintFatalError (const Twine & Msg)

    Functions to print fatal errors.

    Defined at line 132 of file llvm/lib/TableGen/Error.cpp

  • void DecodeMOVLHPSMask (unsigned int NElts, SmallVectorImpl<int> & ShuffleMask)

    <

    0,2> or

    <

    0,1,4,5>

    Defined at line 70 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • const X86FoldTableEntry * lookupFoldTable (unsigned int RegOp, unsigned int OpNum)

    Look up the memory folding table entry for folding a load or store with

    operand OpNum.

    Defined at line 128 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • void initializeLPassPass (PassRegistry & )

    Defined at line 661 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • bool consumeSignedInteger (StringRef & Str, unsigned int Radix, long long & Result)

    Defined at line 452 of file llvm/lib/Support/StringRef.cpp

  • void computeAccessFunctions (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes)

    Return in Subscripts the access functions for each dimension in Sizes

    (third step of delinearization).

    Defined at line 346 of file llvm/lib/Analysis/Delinearization.cpp

  • void createMemCpyLoopKnownSize (Instruction * InsertBefore, Value * SrcAddr, Value * DstAddr, ConstantInt * CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo & TTI, optional AtomicCpySize)

    Emit a loop implementing the semantics of an llvm.memcpy whose size is a

    compile time constant. Loop is inserted at

    Defined at line 236 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • void extractMBBFrequency (SlotIndex CurrentIndex, const size_t CurrentInstructionIndex, int & VisitedMBBs, function_ref<float (SlotIndex)> GetMBBFreq, MachineBasicBlock * CurrentMBBReference, MLModelRunner * RegallocRunner, const int MBBFreqIndex, const int MBBMappingIndex)

    Defined at line of file

  • void UpgradeIntrinsicCall (CallBase * CB, Function * NewFn)

    This is the complement to the above, replacing a specific call to an

    intrinsic function with a call to the specified new function.

    Defined at line 4789 of file llvm/lib/IR/AutoUpgrade.cpp

  • TinyPtrVector<DbgVariableRecord *> findDVRValues (Value * V)

    As above, for DVRValues.

    Defined at line 82 of file llvm/lib/IR/DebugInfo.cpp

  • bool isIRPrintingPass (Pass * P)

    Return true if a pass is for IR printing.

    Defined at line 124 of file llvm/lib/IR/IRPrintingPasses.cpp

  • bool canVectorizeStructTy (StructType * StructTy)

    Returns true if `StructTy` is an unpacked literal struct where all elements

    are scalars that can be used as vector element types.

    Defined at line 58 of file llvm/lib/IR/VectorTypeUtils.cpp

  • bool operator== (Align Lhs, Align Rhs)

    Comparisons operators between Align.

    Defined at line 248 of file llvm/include/llvm/Support/Alignment.h

  • const char * getBugReportMsg ()

    Get the bug report message that will be output upon a crash.

    Defined at line 224 of file llvm/lib/Support/PrettyStackTrace.cpp

  • void runOnNewStack (unsigned int StackSize, function_ref Fn)

    Runs Fn on a new stack of at least the given size.

    The preferred implementation is split stacks on platforms that have a good

    debugging experience for them. On other platforms a new thread is used.

    Parameters

    StackSize requested stack size. A size of 0 uses the default stack size of the platform.

    Defined at line 122 of file llvm/lib/Support/ProgramStack.cpp

  • void PrintFatalError (ArrayRef ErrorLoc, const Twine & Msg)

    Defined at line 142 of file llvm/lib/TableGen/Error.cpp

  • Pass * createSingleLoopExtractorPass ()

    createSingleLoopExtractorPass - This pass extracts one natural loop from the

    program into a function if it can. This is used by bugpoint.

    Defined at line 257 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp

  • Pass * createAlwaysInlinerLegacyPass (bool InsertLifetime)

    Create a legacy pass manager instance of a pass to inline and remove

    functions marked as "always_inline".

    Defined at line 164 of file llvm/lib/Transforms/IPO/AlwaysInliner.cpp

  • const char * archToDevDivInternalArch (ArchType Arch)

    Similar to the above function, but for DevDiv internal builds.

    Defined at line 296 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • MVT getValueType (const Record * Rec)

    Returns the MVT that the specified TableGen

    record corresponds to.

    Defined at line 45 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp

  • iterator_range getDbgRecordRange (DbgMarker * )

    Inline helper to return a range of DbgRecords attached to a marker. It needs

    to be inlined as it's frequently called, but also come after the declaration

    of DbgMarker. Thus: it's pre-declared by users like Instruction, then an

    inlineable body defined here.

    Defined at line 699 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • CallBase & promoteCall (CallBase & CB, Function * Callee, CastInst ** RetBitCast)

    Promote the given indirect call site to unconditionally call

    This function promotes the given call site, returning the direct call or

    invoke instruction. If the function type of the call site doesn't match that

    of the callee, bitcast instructions are inserted where appropriate. If

    is non-null, it will be used to store the return value bitcast,

    if created.

    Defined at line 483 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • void appendToGlobalDtors (Module & M, Function * F, int Priority, Constant * Data)

    Same as appendToGlobalCtors(), but for global dtors.

    Defined at line 78 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • unique_ptr getLazyIRFileModule (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, bool ShouldLazyLoadMetadata)

    If the given file holds a bitcode image, return a Module

    for it which does lazy deserialization of function bodies. Otherwise,

    attempt to parse it as LLVM Assembly and return a fully populated

    Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode

    reader to optionally enable lazy metadata loading.

    Defined at line 54 of file llvm/lib/IRReader/IRReader.cpp

  • void moveInstructionsToTheBeginning (BasicBlock & FromBB, BasicBlock & ToBB, DominatorTree & DT, const PostDominatorTree & PDT, DependenceInfo & DI)

    Move instructions, in an order-preserving manner, from

    to the

    beginning of

    when proven safe.

    Defined at line 380 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • Value * getRuntimeVF (IRBuilderBase & B, Type * Ty, ElementCount VF)

    Return the runtime value for VF.

    Defined at line 786 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • int getDefaultDebuginfodUrls ()

    Finds default array of Debuginfod server URLs by checking DEBUGINFOD_URLS

    environment variable.

    Defined at line 71 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • EHPersonality getDefaultEHPersonality (const Triple & T)

    Defined at line 96 of file llvm/lib/IR/EHPersonalities.cpp

  • const std::error_category & sampleprof_category ()

    Defined at line 123 of file llvm/lib/ProfileData/SampleProf.cpp

  • bool operator!= (Align Lhs, Align Rhs)

    Defined at line 251 of file llvm/include/llvm/Support/Alignment.h

  • void remove_fatal_error_handler ()

    Restores default error handling behaviour.

    Defined at line 87 of file llvm/lib/Support/ErrorHandling.cpp

  • uint64_t xxHash64 (StringRef Data)

    Defined at line 103 of file llvm/lib/Support/xxhash.cpp

  • void PrintFatalError (const Record * Rec, const Twine & Msg)

    This method takes a Record and uses the source location

    stored in it.

    Defined at line 149 of file llvm/lib/TableGen/Error.cpp

  • FunctionPass * createSROAPass (bool PreserveCFG)

    ===----------------------------------------------------------------------===//

    SROA - Replace aggregates or pieces of aggregates with scalar SSA values.

    Defined at line 6234 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • void DecodeMOVSLDUPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 78 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool fuseInstructionPair (ScheduleDAGInstrs & DAG, SUnit & FirstSU, SUnit & SecondSU)

    Create an artificial edge between FirstSU and SecondSU.

    Make data dependencies from the FirstSU also dependent on the SecondSU to

    prevent them from being scheduled between the FirstSU and the SecondSU

    and vice-versa.

    Fusing more than 2 instructions is not currently supported.

    Defined at line 53 of file llvm/lib/CodeGen/MacroFusion.cpp

  • bool salvageKnowledge (Instruction * I, AssumptionCache * AC, DominatorTree * DT)

    Calls BuildAssumeFromInst and if the resulting llvm.assume is valid insert

    if before I. This is usually what need to be done to salvage the knowledge

    contained in the instruction I.

    The AssumptionCache must be provided if it is available or the cache may

    become silently be invalid.

    The DominatorTree can optionally be provided to enable cross-block

    reasoning.

    This returns if a change was made.

    Defined at line 292 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp

  • bool printDwarfExpressionCompact (const DWARFExpression * E, raw_ostream & OS, function GetNameForDWARFReg)

    Print the expression in a format intended to be compact and useful to a

    user, but not perfectly unambiguous, or capable of representing every

    valid DWARF expression. Returns true if the expression was sucessfully

    printed.

    Parameters

    E to be printed
    OS to this stream
    GetNameForDWARFReg callback to return dwarf register name

    Defined at line 335 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp

  • TinyPtrVector<DbgVariableRecord *> findDVRDeclareValues (Value * V)

    As above, for DVRDeclareValues.

    Defined at line 65 of file llvm/lib/IR/DebugInfo.cpp

  • int printBeforePasses ()

    The list of passes to print before/after, if we only want to print

    before/after specific passes.

    Defined at line 140 of file llvm/lib/IR/PrintPasses.cpp

  • bool operator<= (Align Lhs, Align Rhs)

    Defined at line 254 of file llvm/include/llvm/Support/Alignment.h

  • uint64_t xxHash64 (llvm::ArrayRef<uint8_t> Data)

    Defined at line 163 of file llvm/lib/Support/xxhash.cpp

  • void PrintFatalError (const RecordVal * RecVal, const Twine & Msg)

    This method takes a RecordVal and uses the source location

    stored in it.

    Defined at line 156 of file llvm/lib/TableGen/Error.cpp

  • FunctionPass * createPostInlineEntryExitInstrumenterPass ()

    ===----------------------------------------------------------------------===//

    EntryExitInstrumenter pass - Instrument function entry/exit with calls to

    mcount(),

    @

    __cyg_profile_func_{enter,exit} and the like. There are two

    variants, intended to run pre- and post-inlining, respectively. Only the

    post-inlining variant is used with the legacy pass manager.

    Defined at line 195 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp

  • StringRef getEnumName (MVT T)

    Defined at line 54 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp

  • bool PointerMayBeCaptured (const Value * V, bool ReturnCaptures, unsigned int MaxUsesToExplore)

    PointerMayBeCaptured - Return true if this pointer value may be captured

    by the enclosing function (which is required to exist). This routine can

    be expensive, so consider caching the results. The boolean ReturnCaptures

    specifies whether returning the value (or part of it) from the function

    counts as capturing it or not.

    MaxUsesToExplore specifies how many uses the analysis should explore for

    one value before giving up due too "too many uses". If MaxUsesToExplore

    is zero, a default value is assumed.

    This function only considers captures of the passed value via its def-use

    chain, without considering captures of values it may be based on, or

    implicit captures such as for external globals.

    Defined at line 213 of file llvm/lib/Analysis/CaptureTracking.cpp

  • bool parseWidenableBranch (const User * U, Value *& Condition, Value *& WidenableCondition, BasicBlock *& IfTrueBB, BasicBlock *& IfFalseBB)

    If U is widenable branch looking like:

    %cond = ...

    %wc = call i1

    .experimental.widenable.condition()

    %branch_cond = and i1 %cond, %wc

    br i1 %branch_cond, label %if_true_bb, label %if_false_bb ;

    <

    --- U

    The function returns true, and the values %cond and %wc and blocks

    %if_true_bb, if_false_bb are returned in

    the parameters (Condition, WidenableCondition, IfTrueBB and IfFalseFF)

    respectively. If

    does not match this pattern, return false.

    Defined at line 53 of file llvm/lib/Analysis/GuardUtils.cpp

  • GlobalVariable * createPrivateGlobalForString (Module & M, StringRef Str, bool AllowMerging, Twine NamePrefix)

    Create a constant for Str so that we can pass it to the run-time lib.

    Defined at line 80 of file llvm/lib/Transforms/Utils/Instrumentation.cpp

  • bool IsConstantOffsetFromGlobal (Constant * C, GlobalValue *& GV, APInt & Offset, const DataLayout & DL, DSOLocalEquivalent ** DSOEquiv)

    If this constant is a constant offset from a global, return the global and

    the constant. Because of constantexprs, this function is recursive.

    Defined at line 304 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool appendArchToWindowsSDKLibPath (int SDKMajor, SmallString LibPath, ArchType Arch, std::string & path)

    Defined at line 312 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • void printMIR (raw_ostream & OS, const Module & M)

    Print LLVM IR using the MIR serialization format to the given output stream.

    Defined at line 1019 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool isCycleInvariant (const int * Cycle, MachineInstr & I)

    TODO: add this function to GenericCycle template after implementing IR

    version.

    Defined at line 112 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp

  • FunctionPass * createAtomicExpandLegacyPass ()

    AtomicExpandPass - At IR level this pass replace atomic instructions with

    __atomic_* library calls, or target specific instruction which implement the

    same semantics in a way which better fits the target backend.

    Defined at line 423 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • int printAfterPasses ()

    Defined at line 144 of file llvm/lib/IR/PrintPasses.cpp

  • bool operator>= (Align Lhs, Align Rhs)

    Defined at line 257 of file llvm/include/llvm/Support/Alignment.h

  • void PrintFatalError (function_ref PrintMsg)

    Defined at line 137 of file llvm/lib/TableGen/Error.cpp

  • void DecodeMOVSHDUPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 85 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • const X86FoldTableEntry * lookupBroadcastFoldTable (unsigned int RegOp, unsigned int OpNum)

    Look up the broadcast folding table entry for folding a broadcast with

    operand OpNum.

    Defined at line 146 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • int parseAssemblyFile (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots)

    This function is a main interface to the LLVM Assembly Parser. It parses

    an ASCII file that (presumably) contains LLVM Assembly code. It returns a

    Module (intermediate representation) with the corresponding features. Note

    that this does not verify that the generated Module is valid, so you should

    run the verifier after parsing the file to check that it is okay.

    Parse LLVM Assembly from a file

    Parameters

    Filename The name of the file to parse
    Err Error result info.
    Context Context in which to allocate globals info.
    Slots The optional slot mapping that will be initialized during parsing.

    Defined at line 64 of file llvm/lib/AsmParser/Parser.cpp

  • void findDevirtualizableCallsForTypeTest (SmallVectorImpl<DevirtCallSite> & DevirtCalls, SmallVectorImpl<CallInst *> & Assumes, const CallInst * CI, DominatorTree & DT)

    Given a call to the intrinsic

    @

    llvm.type.test, find all devirtualizable

    call sites based on the call and return them in DevirtCalls.

    Defined at line 87 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const IndexedReference & R)

    ===----------------------------------------------------------------------===//

    IndexedReference implementation

    Defined at line 129 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp

  • basic_string getDebuginfodCacheKey (StringRef UrlPath)

    Returns the cache key for a given debuginfod URL path.

    Defined at line 57 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void UpgradeInlineAsmString (std::string * AsmStr)

    This upgrades the comment for objc retain release markers in inline asm

    calls

    Defined at line 2603 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool operator< (Align Lhs, Align Rhs)

    Defined at line 260 of file llvm/include/llvm/Support/Alignment.h

  • uint64_t xxh3_64bits (ArrayRef<uint8_t> data)

    Defined at line 553 of file llvm/lib/Support/xxhash.cpp

  • bool HasLoopOrEntryConvergenceToken (const BasicBlock * BB)

    Check if the given basic block contains any loop or entry convergent

    intrinsic instructions.

    Defined at line 95 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Value * createStepForVF (IRBuilderBase & B, Type * Ty, ElementCount VF, int64_t Step)

    Return a value for Step multiplied by VF.

    Defined at line 772 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool isCriticalEdge (const Instruction * TI, unsigned int SuccNum, bool AllowIdenticalEdges)

    Return true if the specified edge is a critical edge. Critical edges are

    edges from a block with multiple successors to a block with multiple

    predecessors.

    Defined at line 96 of file llvm/lib/Analysis/CFG.cpp

  • Constant * ConstantFoldExtractElementInstruction (Constant * Val, Constant * Idx)

    Attempt to constant fold an extractelement instruction with the

    specified operands and indices. The constant result is returned if

    successful; if not, null is returned.

    Defined at line 334 of file llvm/lib/IR/ConstantFold.cpp

  • const std::error_category & cgdata_category ()

    Defined at line 94 of file llvm/lib/CGData/CodeGenData.cpp

  • bool operator> (Align Lhs, Align Rhs)

    Defined at line 263 of file llvm/include/llvm/Support/Alignment.h

  • bool expandRemainderUpTo32Bits (BinaryOperator * Rem)

    Generate code to calculate the remainder of two integers, replacing Rem

    with the generated code. Uses ExpandReminder with a 32bit Rem which

    makes it useful for targets with little or no support for less than

    32 bit arithmetic.

    Replace Rem with generated code.

    Defined at line 455 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • void DecodeMOVDDUPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 92 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void findDbgUsers (Value * V, SmallVectorImpl<DbgVariableRecord *> & DbgVariableRecords)

    Finds the debug info records describing a value.

    Defined at line 146 of file llvm/lib/IR/DebugInfo.cpp

  • bool isDereferenceableAndAlignedPointer (const Value * V, Type * Ty, Align Alignment, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)

    Returns true if V is always a dereferenceable pointer with alignment

    greater or equal than requested. If the context instruction is specified

    performs context-sensitive analysis and returns true if the pointer is

    dereferenceable at the specified instruction.

    Defined at line 229 of file llvm/lib/Analysis/Loads.cpp

  • ASanStackFrameLayout ComputeASanStackFrameLayout (SmallVectorImpl<ASanStackVariableDescription> & Vars, uint64_t Granularity, uint64_t MinHeaderSize)

    Defined at line 52 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp

  • bool forcePrintModuleIR ()

    Returns true if we should always print the entire module.

    Defined at line 148 of file llvm/lib/IR/PrintPasses.cpp

  • bool hasBranchWeightMD (const Instruction & I)

    Checks if an instructions has Branch Weight Metadata

    Parameters

    I The instruction to check

    Defined at line 131 of file llvm/lib/IR/ProfDataUtils.cpp

  • unsigned int encode (MaybeAlign A)

    Returns a representation of the alignment that encodes undefined as 0.

    Defined at line 206 of file llvm/include/llvm/Support/Alignment.h

  • bool CheckAssert (SMLoc Loc, const Init * Condition, const Init * Message)

    Check an assertion: Obtain the condition value and be sure it is true.

    If not, print a nonfatal error along with the message.

    Defined at line 163 of file llvm/lib/TableGen/Error.cpp

  • basic_string getQualifiedName (const Record * R)

    getQualifiedName - Return the name of the specified record, with a

    namespace qualifier if the record contains one.

    Defined at line 69 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp

  • bool isCriticalEdge (const Instruction * TI, const BasicBlock * Succ, bool AllowIdenticalEdges)

    Defined at line 102 of file llvm/lib/Analysis/CFG.cpp

  • void printMIR (raw_ostream & OS, const MachineModuleInfo & MMI, const MachineFunction & MF)

    Print MIR using Legacy Pass Manager (uses MachineModuleInfo).

    Defined at line 1024 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • int runFuzzerOnInputs (int ArgC, char *[] ArgV, FuzzerTestFun TestOne, FuzzerInitFun Init)

    Runs a fuzz target on the inputs specified on the command line.

    Useful for testing fuzz targets without linking to libFuzzer. Finds inputs

    in the argument list in a libFuzzer compatible way.

    Defined at line 142 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp

  • void expandMemCpyAsLoop (MemCpyInst * MemCpy, const TargetTransformInfo & TTI, ScalarEvolution * SE)

    Expand

    as a loop.

    is not deleted.

    Defined at line 982 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • AssumeInst * buildAssumeFromKnowledge (ArrayRef<RetainedKnowledge> Knowledge, Instruction * CtxI, AssumptionCache * AC, DominatorTree * DT)

    Build and return a new assume created from the provided knowledge

    if the knowledge in the assume is fully redundant this will return nullptr

    Defined at line 308 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp

  • const Loop * addClonedBlockToLoopInfo (BasicBlock * OriginalBB, BasicBlock * ClonedBB, LoopInfo * LI, NewLoopsMap & NewLoops)

    @

    }

    Defined at line 149 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • const Loop * addClonedBlockToLoopInfo (BasicBlock * OriginalBB, BasicBlock * ClonedBB, LoopInfo * LI, int & NewLoops)

    @

    }

    Defined at line of file

  • void thinLTOResolvePrevailingInIndex (const lto::Config & C, ModuleSummaryIndex & Index, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref<void (StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage, const int & GUIDPreservedSymbols)

    Resolve linkage for prevailing symbols in the

    We'd like to drop these functions if they are no longer referenced in the

    current module. However there is a chance that another module is still

    referencing them because of the import. We make sure we always emit at least

    one copy.

    Defined at line 449 of file llvm/lib/LTO/LTO.cpp

  • basic_string formatCallSiteLocation (DebugLoc DLoc, const CallSiteFormat & Format)

    Get call site location as a string with the given format

    Defined at line 472 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • void initializeAAResultsWrapperPassPass (PassRegistry & )

    Defined at line 746 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • void warnToStderr (Error Err)

    Defined at line 1316 of file llvm/lib/Object/ArchiveWriter.cpp

  • MaybeAlign decodeMaybeAlign (unsigned int Value)

    Dual operation of the encode function above.

    Defined at line 209 of file llvm/include/llvm/Support/Alignment.h

  • void dumpMessage (SMLoc Loc, const Init * Message)

    Dump a message to stderr.

    Defined at line 181 of file llvm/lib/TableGen/Error.cpp

  • Pass * createLICMPass ()

    ===----------------------------------------------------------------------===//

    LICM - This pass is a loop invariant code motion and memory promotion pass.

    Defined at line 386 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • FunctionPass * createX86FPStackifierLegacyPass ()

    Defined at line 317 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • const X86FoldTableEntry * lookupUnfoldTable (unsigned int MemOp)

    Look up the memory unfolding table entry for this instruction.

    Defined at line 230 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • bool hasAssumption (const Function & F, const KnownAssumptionString & AssumptionStr)

    Return true if

    has the assumption

    attached.

    Defined at line 67 of file llvm/lib/IR/Assumptions.cpp

  • void DecodePSLLDQMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 100 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • unique_ptr createWasmObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)

    Construct a new Wasm writer instance.

    Parameters

    MOTW - The target specific Wasm writer subclass.
    OS - The stream to write to.

    Defined at line 1949 of file llvm/lib/MC/WasmObjectWriter.cpp

  • void setDefaultDebuginfodUrls (const int & URLs)

    Sets the list of debuginfod server URLs to query. This overrides the

    environment variable DEBUGINFOD_URLS.

    Defined at line of file

  • void setDefaultDebuginfodUrls (const SmallVector<StringRef> & URLs)

    Set the default debuginfod URL list, override the environment variable.

    Defined at line 90 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void initializeAlwaysInlinerLegacyPassPass (PassRegistry & )

    Defined at line 161 of file llvm/lib/Transforms/IPO/AlwaysInliner.cpp

  • void transformGlobalCtors (Module & M, const GlobalCtorTransformFn & Fn)

    Defined at line 118 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • bool parseWidenableBranch (User * U, Use *& Cond, Use *& WC, BasicBlock *& IfTrueBB, BasicBlock *& IfFalseBB)

    Analogous to the above, but return the Uses so that they can be

    modified. Unlike previous version, Condition is optional and may be null.

    Defined at line 69 of file llvm/lib/Analysis/GuardUtils.cpp

  • PrettyStackTraceEntry * ReverseStackTrace (PrettyStackTraceEntry * )

    Defined at line 71 of file llvm/lib/Support/PrettyStackTrace.cpp

  • std::unique_ptr<Module> CloneModule (const Module & M, ValueToValueMapTy & VMap)

    Defined at line 47 of file llvm/lib/Transforms/Utils/CloneModule.cpp

  • unique_ptr parseIR (MemoryBufferRef Buffer, SMDiagnostic & Err, LLVMContext & Context, ParserCallbacks Callbacks, AsmParserContext * ParserContext)

    If the given MemoryBuffer holds a bitcode image, return a Module

    for it. Otherwise, attempt to parse it as LLVM Assembly and return

    a Module for it.

    Parameters

    DataLayoutCallback Override datalayout in the llvm assembly.

    Defined at line 70 of file llvm/lib/IRReader/IRReader.cpp

  • void moveInstructionsToTheEnd (BasicBlock & FromBB, BasicBlock & ToBB, DominatorTree & DT, const PostDominatorTree & PDT, DependenceInfo & DI)

    Move instructions, in an order-preserving manner, from

    to the end

    of

    when proven safe.

    Defined at line 393 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • bool forcePrintFuncIR ()

    Returns true if we should print the entire function for loop passes.

    Defined at line 150 of file llvm/lib/IR/PrintPasses.cpp

  • void initializeAssignmentTrackingAnalysisPass (PassRegistry & )

    Defined at line 2815 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • void setCurrentDebugType (const char * Type)

    setCurrentDebugType - Set the current debug type, as if the -debug-only=X

    option were specified. Note that DebugFlag also needs to be set to true for

    debug output to be produced.

    The debug type format is "type[:level]", where the level is an optional

    integer. If a level is provided, the debug output is enabled only if the

    user specified a level at least as high as the provided level.

    0 is a special level that acts as an opt-out for this specific debug type

    without affecting the other debug output.

    Defined at line 107 of file llvm/lib/Support/Debug.cpp

  • Comdat * getOrCreateFunctionComdat (Function & F, Triple & T)

    Returns F.getComdat() if it exists.

    Otherwise creates a new comdat, sets F's comdat, and returns it.

    Returns nullptr on failure.

    Defined at line 96 of file llvm/lib/Transforms/Utils/Instrumentation.cpp

  • void transformGlobalDtors (Module & M, const GlobalCtorTransformFn & Fn)

    Defined at line 122 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void findDbgValues (Value * V, SmallVectorImpl<DbgVariableRecord *> & DbgVariableRecords)

    Finds the dbg.values describing a value.

    Defined at line 141 of file llvm/lib/IR/DebugInfo.cpp

  • unique_ptr createSPIRVObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)

    Construct a new SPIR-V writer instance.

    Parameters

    MOTW - The target specific SPIR-V writer subclass.
    OS - The stream to write to.

    Defined at line 49 of file llvm/lib/MC/SPIRVObjectWriter.cpp

  • unique_ptr createXCOFFObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)

    Defined at line 1720 of file llvm/lib/MC/XCOFFObjectWriter.cpp

  • BasicBlock * InsertPreheaderForLoop (Loop * L, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    InsertPreheaderForLoop - Once we discover that a loop doesn't have a

    preheader, this method is called to insert one. This method has two phases:

    preheader insertion and analysis updating.

    Defined at line 115 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • int getReplayInlineAdvisor (Module & M, FunctionAnalysisManager & FAM, LLVMContext & Context, int OriginalAdvisor, const ReplayInlinerSettings & ReplaySettings, bool EmitRemarks, InlineContext IC)

    Defined at line 79 of file llvm/lib/Analysis/ReplayInlineAdvisor.cpp

  • std::pair<bool, bool> simplifyUsersOfIV (PHINode * CurrIV, ScalarEvolution * SE, DominatorTree * DT, LoopInfo * LI, const TargetTransformInfo * TTI, SmallVectorImpl<WeakTrackingVH> & Dead, SCEVExpander & Rewriter, IVVisitor * V)

    Simplify instructions that use this induction variable

    by using ScalarEvolution to analyze the IV's recurrence.

    Returns a pair where the first entry indicates that the function makes

    changes and the second entry indicates that it introduced new opportunities

    for loop unswitching.

    Defined at line 1022 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • bool isAllocationFn (const Value * V, const TargetLibraryInfo * TLI)

    Tests if a value is a call or invoke to a library function that

    allocates or reallocates memory (either malloc, calloc, realloc, or strdup

    like).

    Defined at line 287 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void viewRegion (const llvm::Function * F)

    Analyze the regions of a function and open its GraphViz

    visualization in a viewer.

    Useful to call in the debugger.

    Includes the instructions in each BasicBlock.

    The result of a new analysis may differ from the RegionInfo the pass

    manager currently holds.

    Parameters

    F Function to analyze.

    Defined at line 239 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void UpgradeCallsToIntrinsic (Function * F)

    This is an auto-upgrade hook for any old intrinsic function syntaxes

    which need to have both the function updated as well as all calls updated

    to the new function. This should only be run in a post-processing fashion

    so that it can update all calls to the old function.

    Defined at line 5549 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeAssumptionCacheTrackerPass (PassRegistry & )

    Defined at line 309 of file llvm/lib/Analysis/AssumptionCache.cpp

  • uint16_t getPointerAuthStableSipHash (StringRef S)

    Compute a stable non-zero 16-bit hash of the given string.

    The exact algorithm is the little-endian interpretation of the

    non-doubled (i.e. 64-bit) result of applying a SipHash-2-4 using

    a specific seed value which can be found in the source.

    This 64-bit result is truncated to a non-zero 16-bit value.

    We use a 16-bit discriminator because ARM64 can efficiently load

    a 16-bit immediate into the high bits of a register without disturbing

    the remainder of the value, which serves as a nice blend operation.

    16 bits is also sufficiently compact to not inflate a loader relocation.

    We disallow zero to guarantee a different discriminator from the places

    in the ABI that use a constant zero.

    Defined at line 49 of file llvm/lib/Support/SipHash.cpp

  • void emitVarLenCodeEmitter (const RecordKeeper & R, raw_ostream & OS)

    Defined at line 518 of file llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp

  • void printMIR (raw_ostream & OS, FunctionAnalysisManager & FAM, const MachineFunction & MF)

    Print MIR using New Pass Manager (uses FunctionAnalysisManager).

    Defined at line 1029 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • void spliceBB (InsertPoint IP, BasicBlock * New, bool CreateBranch, DebugLoc DL)

    Move the instruction after an InsertPoint to the beginning of another

    BasicBlock.

    The instructions after

    are moved to the beginning of

    which must

    not have any PHINodes. If

    is true, a branch instruction to

    will be added such that there is no semantic change. Otherwise, the

    insert block remains degenerate and it is up to the caller to insert a

    terminator.

    is used as the debug location for the branch instruction

    if one is created.

    Defined at line 311 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void DecodePSRLDQMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 112 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • int createMacroFusionDAGMutation (ArrayRef<MacroFusionPredTy> Predicates, bool BranchOnly)

    Create a DAG scheduling mutation to pair instructions back to back

    for instructions that benefit according to the target-specific

    predicate functions. shouldScheduleAdjacent will be true if any of the

    provided predicates are true.

    If BranchOnly is true, only branch instructions with one of their

    predecessors will be fused.

    Defined at line 226 of file llvm/lib/CodeGen/MacroFusion.cpp

  • Constant * ConstantFoldInsertElementInstruction (Constant * Val, Constant * Elt, Constant * Idx)

    Attempt to constant fold an insertelement instruction with the

    specified operands and indices. The constant result is returned if

    successful; if not, null is returned.

    Defined at line 398 of file llvm/lib/IR/ConstantFold.cpp

  • const SCEV * normalizeForPostIncUse (const SCEV * S, const PostIncLoopSet & Loops, ScalarEvolution & SE, bool CheckInvertible)

    Normalize

    to be post-increment for all loops present in

    Returns nullptr if the result is not invertible and

    is true.

    Defined at line 97 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp

  • void detachDeadBlocks (ArrayRef<BasicBlock *> BBs, SmallVectorImpl<DominatorTree::UpdateType> * Updates, bool KeepOneInputPHIs)

    Replace contents of every block in

    with single unreachable

    instruction. If

    is specified, collect all necessary DT updates

    into this vector. If

    is true, one-input Phis in

    successors of blocks being deleted will be preserved.

    Defined at line 104 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void detachDeadBlocks (ArrayRef<BasicBlock *> BBs, int * Updates, bool KeepOneInputPHIs)

    Replace contents of every block in

    with single unreachable

    instruction. If

    is specified, collect all necessary DT updates

    into this vector. If

    is true, one-input Phis in

    successors of blocks being deleted will be preserved.

    Defined at line of file

  • void findDevirtualizableCallsForTypeCheckedLoad (SmallVectorImpl<DevirtCallSite> & DevirtCalls, SmallVectorImpl<Instruction *> & LoadedPtrs, SmallVectorImpl<Instruction *> & Preds, bool & HasNonCallUses, const CallInst * CI, DominatorTree & DT)

    Given a call to the intrinsic

    @

    llvm.type.checked.load, find all

    devirtualizable call sites based on the call and return them in DevirtCalls.

    Defined at line 109 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • Error writeArchiveToStream (raw_ostream & Out, ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin, optional IsEC, function_ref Warn)

    Write an archive directly to an output stream.

    Defined at line 1030 of file llvm/lib/Object/ArchiveWriter.cpp

  • FunctionPass * createUnreachableBlockEliminationPass ()

    createUnreachableBlockEliminationPass - The LLVM code generator does not

    work well with unreachable basic blocks (what live ranges make sense for a

    block that cannot be reached?). As such, a code generator should either

    not instruction select unreachable blocks, or run this pass as its

    last LLVM modifying pass to clean up blocks that are not reachable from

    the entry block.

    Defined at line 62 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp

  • void initializeAtomicExpandLegacyPass (PassRegistry & )

    Defined at line 183 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool expandRemainderUpTo64Bits (BinaryOperator * Rem)

    Generate code to calculate the remainder of two integers, replacing Rem

    with the generated code. Uses ExpandReminder with a 64bit Rem.

    Replace Rem with generated code.

    Defined at line 504 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • FunctionPass * createX86IssueVZeroUpperPass ()

    This pass inserts AVX vzeroupper instructions before each call to avoid

    transition penalty between functions encoded with AVX and SSE.

    Defined at line 115 of file llvm/lib/Target/X86/X86VZeroUpper.cpp

  • void printPasses (raw_ostream & OS)

    Defined at line 595 of file llvm/tools/opt/NewPMDriver.cpp

  • const X86FoldTableEntry * lookupBroadcastFoldTableBySize (unsigned int MemOp, unsigned int BroadcastBits)

    Look up the broadcast folding table entry for this instruction from

    the regular memory instruction.

    Defined at line 324 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • bool isAllocationFn (const Value * V, function_ref GetTLI)

    Defined at line 291 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • char * microsoftDemangle (basic_string_view mangled_name, size_t * n_read, int * status, MSDemangleFlags Flags)

    Demangles the Microsoft symbol pointed at by mangled_name and returns it.

    Returns a pointer to the start of a null-terminated demangled string on

    success, or nullptr on error.

    If n_read is non-null and demangling was successful, it receives how many

    bytes of the input string were consumed.

    status receives one of the demangle_ enum entries above if it's not nullptr.

    Flags controls various details of the demangled representation.

    Defined at line 2522 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • unique_ptr createWasmDwoObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS, raw_pwrite_stream & DwoOS)

    Defined at line 1955 of file llvm/lib/MC/WasmObjectWriter.cpp

  • void splitModuleTransitiveFromEntryPoints (unique_ptr M, function_ref EntryPointCategorizer, function_ref Callback)

    Splits the given module

    into parts. Each output part is passed to

    for further possible processing. Each part corresponds to a

    subset of the module that is transitively reachable from some entry point

    group. Each entry point group is defined by

    (EPC)

    as follows: 1) If the function is not an entry point, then the Categorizer

    returns std::nullopt. Therefore, the function doesn't belong to any group.

    However, the function and global objects can still be associated with some

    output parts if they are transitively used from some entry points. 2) If the

    function belongs to an entry point group, then EPC returns an integer which

    is an identifier of the group. If two entry points belong to one group, then

    EPC returns the same identifier for both of them.

    Let A and B be global objects in the module. The transitive dependency

    relation is defined such that: If global object A is used by global object B

    in any way (e.g., store, bitcast, phi node, call), then "A" -> "B".

    Transitivity is defined such that: If "A" -> "B" and "B" -> "C", then "A" ->

    "C". Examples of dependencies:

    - Function FA calls function FB

    - Function FA uses global variable GA

    - Global variable GA references (is initialized with) function FB

    - Function FA stores the address of function FB somewhere

    The following cases are treated as dependencies between global objects:

    1. Global object A is used by global object B in any way (store,

    bitcast, phi node, call, etc.): an "A" -> "B" edge will be added to the

    graph;

    2. Function A performs an indirect call of a function with signature S, and

    there is a function B with signature S. An "A" -> "B" edge will be added

    to the graph;

    FIXME: For now, the algorithm assumes no recursion in the input Module. This

    will be addressed in the near future.

    Defined at line 311 of file llvm/lib/Transforms/Utils/SplitModuleByCategory.cpp

  • basic_string getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout, const std::string & VCToolChainPath, ArchType TargetArch, StringRef SubdirParent)

    Get the path to a specific subdirectory in the current toolchain for

    a given target architecture.

    VS2017 changed the VC toolchain layout, so this should be used instead

    of hardcoding paths.

    Defined at line 338 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • Expected<std::string> getDefaultDebuginfodCacheDirectory ()

    Finds a default local file caching directory for the debuginfod client,

    first checking DEBUGINFOD_CACHE_PATH.

    Defined at line 97 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • bool isPassInPrintList (StringRef PassName)

    Return true if -filter-passes is empty or contains the pass name.

    Defined at line 152 of file llvm/lib/IR/PrintPasses.cpp

  • void initializeBasicBlockMatchingAndInferencePass (PassRegistry & )

    Defined at line 82 of file llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp

  • int getStandardCSEConfigForOpt (CodeGenOptLevel Level)

    Returns the standard expected CSEConfig for the given optimization level.

    We have this logic here so targets can make use of it from their derived

    TargetPassConfig, but can't put this logic into TargetPassConfig directly

    because the CodeGen library can't depend on GlobalISel.

    Defined at line 88 of file llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp

  • bool hasAssumption (const CallBase & CB, const KnownAssumptionString & AssumptionStr)

    Return true if

    or the callee has the assumption

    attached.

    Defined at line 73 of file llvm/lib/IR/Assumptions.cpp

  • std::optional<fp::ExceptionBehavior> convertStrToExceptionBehavior (StringRef )

    Returns a valid ExceptionBehavior enumerator when given a string

    valid as input in constrained intrinsic exception behavior metadata.

    Defined at line 66 of file llvm/lib/IR/FPEnv.cpp

  • Error decodeBase64 (StringRef Input, int & Output)

    Defined at line of file

  • CallBase & promoteCallWithIfThenElse (CallBase & CB, Function * Callee, MDNode * BranchWeights)

    Promote the given indirect call site to conditionally call

    The

    promoted direct call instruction is predicated on `CB.getCalledOperand() ==

    Callee`.

    This function creates an if-then-else structure at the location of the call

    site. The original call site is moved into the "else" block. A clone of the

    indirect call site is promoted, placed in the "then" block, and returned. If

    is non-null, it will be used to set !prof metadata on the

    new conditional branch.

    Defined at line 567 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • bool expandMemMoveAsLoop (MemMoveInst * MemMove, const TargetTransformInfo & TTI)

    Expand

    as a loop.

    is not deleted. Returns true if the

    memmove was lowered.

    Defined at line 1013 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • Constant * ConstantFoldInstruction (const Instruction * I, const DataLayout & DL, const TargetLibraryInfo * TLI)

    ConstantFoldInstruction - Try to constant fold the specified instruction.

    If successful, the constant result is returned, if not, null is returned.

    Note that this fails if not all of the operands are constant. Otherwise,

    this function can only fail when attempting to fold instructions like loads

    and stores, which have no constant expression form.

    Defined at line 1135 of file llvm/lib/Analysis/ConstantFolding.cpp

  • CaptureComponents PointerMayBeCaptured (const Value * V, bool ReturnCaptures, CaptureComponents Mask, function_ref StopFn, unsigned int MaxUsesToExplore)

    Return which components of the pointer may be captured. Only consider

    components that are part of

    Once

    on the accumulated

    components returns true, the traversal is aborted early. By default, this

    happens when *any* of the components in

    are captured.

    This function only considers captures of the passed value via its def-use

    chain, without considering captures of values it may be based on, or

    implicit captures such as for external globals.

    Defined at line 194 of file llvm/lib/Analysis/CaptureTracking.cpp

  • bool isFilterPassesEmpty ()

    Defined at line 158 of file llvm/lib/IR/PrintPasses.cpp

  • bool hasValidBranchWeightMD (const Instruction & I)

    Checks if an instructions has valid Branch Weight Metadata

    Parameters

    I The instruction to check

    Defined at line 146 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeBasicBlockPathCloningPass (PassRegistry & )

    Defined at line 238 of file llvm/lib/CodeGen/BasicBlockPathCloning.cpp

  • void setKCFIType (Module & M, Function & F, StringRef MangledType)

    Sets the KCFI type for the function. Used for compiler-generated functions

    that are indirectly called in instrumented code.

    Defined at line 202 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void DecodePALIGNRMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 125 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool predicatesFoldable (Predicate P1, Predicate P2)

    Return true if both predicates match sign or if at least one of them is an

    equality comparison (which is signless).

    Defined at line 58 of file llvm/lib/Analysis/CmpInstAnalysis.cpp

  • bool expandAtomicRMWToCmpXchg (AtomicRMWInst * AI, CreateCmpXchgInstFun CreateCmpXchg)

    Expand an atomic RMW instruction into a loop utilizing

    cmpxchg. You'll want to make sure your target machine likes cmpxchg

    instructions in the first place and that there isn't another, better,

    transformation available (for example AArch32/AArch64 have linked loads).

    This is useful in passes which can't rewrite the more exotic RMW

    instructions directly into a platform specific intrinsics (because, say,

    those intrinsics don't exist). If such a pass is able to expand cmpxchg

    instructions directly however, then, with this function, it could avoid two

    extra module passes (avoiding passes by `-atomic-expand` and itself).

    Given: atomicrmw some_op iN* %addr, iN %incr ordering

    The standard expansion we produce is:

    [...]

    %init_loaded = load atomic iN* %addr

    br label %loop

    loop:

    %loaded = phi iN [ %init_loaded, %entry ], [ %new_loaded, %loop ]

    %new = some_op iN %loaded, %incr

    ; This is what -atomic-expand will produce using this function on i686

    targets:

    %pair = cmpxchg iN* %addr, iN %loaded, iN %new_val

    %new_loaded = extractvalue { iN, i1 } %pair, 0

    %success = extractvalue { iN, i1 } %pair, 1

    ; End callback produced IR

    br i1 %success, label %atomicrmw.end, label %loop

    atomicrmw.end:

    [...]

    Returns true if the containing function was modified.

    Defined at line 1719 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • GlobalVariable * UpgradeGlobalVariable (GlobalVariable * GV)

    This checks for global variables which should be upgraded. If it requires

    upgrading, returns a pointer to the upgraded variable.

    Defined at line 1835 of file llvm/lib/IR/AutoUpgrade.cpp

  • DISubprogram * getDISubprogram (const MDNode * Scope)

    Find subprogram that is enclosing this scope.

    Defined at line 151 of file llvm/lib/IR/DebugInfo.cpp

  • Pass * createLoopStrengthReducePass ()

    ===----------------------------------------------------------------------===//

    LoopStrengthReduce - This pass is strength reduces GEP instructions that use

    a loop's canonical induction variable as one of their indices.

    Defined at line 7162 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool matchBroadcastSize (const X86FoldTableEntry & Entry, unsigned int BroadcastBits)

    Defined at line 308 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • void setGlobalVariableLargeSection (const Triple & TargetTriple, GlobalVariable & GV)

    Place global in a large section for x86-64 ELF binaries to mitigate

    relocation overflow pressure. This can be be used for metadata globals that

    aren't directly accessed by code, which has no performance impact.

    Defined at line 112 of file llvm/lib/Transforms/Utils/Instrumentation.cpp

  • bool prettyPrintRegisterOp (DWARFUnit * U, raw_ostream & OS, DIDumpOptions DumpOpts, uint8_t Opcode, ArrayRef Operands)

    Pretty print a register opcode and operands.

    returns true if the Op was successfully printed

    Parameters

    U within the context of this Dwarf unit, if any.
    OS to this stream
    DumpOpts with these options
    Opcode to print
    Operands to the opcode

    Defined at line 341 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp

  • bool isDereferenceableAndAlignedPointer (const Value * V, Align Alignment, const APInt & Size, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)

    Returns true if V is always dereferenceable for Size byte with alignment

    greater or equal than requested. If the context instruction is specified

    performs context-sensitive analysis and returns true if the pointer is

    dereferenceable at the specified instruction.

    Defined at line 215 of file llvm/lib/Analysis/Loads.cpp

  • void ComputeValueTypes (const DataLayout & DL, Type * Ty, SmallVectorImpl<Type *> & Types, SmallVectorImpl<TypeSize> * Offsets, TypeSize StartingOffset)

    Given an LLVM IR type, compute non-aggregate subtypes. Optionally also

    compute their offsets.

    Defined at line 72 of file llvm/lib/CodeGen/Analysis.cpp

  • bool applyDebugifyMetadata (Module & M, int Functions, StringRef Banner, std::function<bool (DIBuilder &, Function &)> ApplyToMF)

    Add synthesized debug information to a module.

    Parameters

    M The module to add debug information to.
    Functions A range of functions to add debug information to.
    Banner A prefix string to add to debug/error messages.
    ApplyToMF A call back that will add debug information to the MachineFunction for a Function. If nullptr, then the MachineFunction (if any) will not be modified.

    Defined at line of file

  • bool applyDebugifyMetadata (Module & M, iterator_range Functions, StringRef Banner, function ApplyToMF)

    Add synthesized debug information to a module.

    Parameters

    M The module to add debug information to.
    Functions A range of functions to add debug information to.
    Banner A prefix string to add to debug/error messages.
    ApplyToMF A call back that will add debug information to the MachineFunction for a Function. If nullptr, then the MachineFunction (if any) will not be modified.

    Defined at line 138 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • void setCurrentDebugTypes (const char ** Types, unsigned int Count)

    Set the current debug type, as if the -debug-only=X

    option were specified. Note that DebugFlag also needs to be set to true for

    debug output to be produced.

    Defined at line 111 of file llvm/lib/Support/Debug.cpp

  • FunctionPass * createBreakCriticalEdgesPass ()

    ===----------------------------------------------------------------------===//

    BreakCriticalEdges - Break all of the critical edges in the CFG by inserting

    a dummy basic block. This pass may be "required" by passes that cannot deal

    with critical edges. For this usage, a pass must call:

    AU.addRequiredID(BreakCriticalEdgesID);

    This pass obviously invalidates the CFG, but can update forward dominator

    (set, immediate dominators, tree, and frontier) information.

    Defined at line 80 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • FunctionPass * createX86IndirectBranchTrackingPass ()

    This pass inserts ENDBR instructions before indirect jump/call

    destinations as part of CET IBT mechanism.

    Defined at line 69 of file llvm/lib/Target/X86/X86IndirectBranchTracking.cpp

  • optional getArm64ECInsertionPointInMangledName (basic_string_view MangledName)

    Defined at line 2504 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool DisplayGraph (StringRef Filename, bool wait, Name program)

    Defined at line 190 of file llvm/lib/Support/GraphWriter.cpp

  • CallBase * promoteCallWithIfThenElse (CallBase & CB, Function & Callee, PGOContextualProfile & CtxProf)

    Defined at line 579 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • std::unique_ptr<Module> CloneModule (const Module & M, ValueToValueMapTy & VMap, function_ref<bool (const GlobalValue *)> ShouldCloneDefinition)

    Return a copy of the specified module. The ShouldCloneDefinition function

    controls whether a specific GlobalValue's definition is cloned. If the

    function returns false, the module copy will contain an external reference

    in place of the global definition.

    Defined at line 52 of file llvm/lib/Transforms/Utils/CloneModule.cpp

  • FunctionCallee declareSanitizerInitFunction (Module & M, StringRef InitName, ArrayRef InitArgTypes, bool Weak)

    Defined at line 230 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • Spiller * createInlineSpiller (const Spiller::RequiredAnalyses & Analyses, MachineFunction & MF, VirtRegMap & VRM, VirtRegAuxInfo & VRAI, LiveRegMatrix * Matrix)

    Create and return a spiller that will insert spill code directly instead

    of deferring though VirtRegMap.

    Defined at line 233 of file llvm/lib/CodeGen/InlineSpiller.cpp

  • void computeKnownBits (const Value * V, KnownBits & Known, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)

    Determine which bits of V are known to be either zero or one and return

    them in the KnownZero/KnownOne bit sets.

    This function is defined on values with integer type, values with pointer

    type, and vectors of integers. In the case

    where V is a vector, the known zero and known one values are the

    same width as the vector element, and the bit is set only if it is true

    for all of the elements in the vector.

    Defined at line 152 of file llvm/lib/Analysis/ValueTracking.cpp

  • void parseWidenableGuard (const User * U, llvm::SmallVectorImpl<Value *> & Checks)

    The guard condition is expected to be in form of:

    cond1

    &

    &

    cond2

    &

    &

    cond3 ...

    or in case of widenable branch:

    cond1

    &

    &

    cond2

    &

    &

    cond3

    &

    &

    widenable_contidion ...

    Method collects the list of checks, but skips widenable_condition.

    Defined at line 138 of file llvm/lib/Analysis/GuardUtils.cpp

  • duration getDefaultDebuginfodTimeout ()

    Finds a default timeout for debuginfod HTTP requests. Checks

    DEBUGINFOD_TIMEOUT environment variable, default is 90 seconds (90000 ms).

    Defined at line 109 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • int getAssumptions (const Function & F)

    Return the set of all assumptions for the function

    Defined at line 83 of file llvm/lib/IR/Assumptions.cpp

  • bool isFunctionInPrintList (StringRef FunctionName)

    Returns true if we should print the function.

    Defined at line 160 of file llvm/lib/IR/PrintPasses.cpp

  • void initializeBasicBlockSectionsPass (PassRegistry & )

    Defined at line 141 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • void expandMemSetAsLoop (MemSetInst * MemSet)

    Expand

    as a loop.

    is not deleted.

    Defined at line 1069 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • void EmitMapTable (const RecordKeeper & RK, raw_ostream & OS)

    ===----------------------------------------------------------------------===//

    Parse 'InstrMapping' records and use the information to form relationship

    between instructions. These relations are emitted as tables along with the

    functions to query them.

    ===----------------------------------------------------------------------===//

    Defined at line 544 of file llvm/utils/TableGen/CodeGenMapTable.cpp

  • Value * simplifyAddInst (Value * LHS, Value * RHS, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)

    Given operands for an Add, fold the result or return null.

    Defined at line 661 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SmallString ComputeASanStackFrameDescription (const SmallVectorImpl<ASanStackVariableDescription> & Vars)

    Compute frame description, see DescribeAddressIfStack in ASan runtime.

    Defined at line 96 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp

  • void DeleteDeadBlock (BasicBlock * BB, DomTreeUpdater * DTU, bool KeepOneInputPHIs)

    Delete the specified block, which must have no predecessors.

    Defined at line 145 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void DecodeVALIGNMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 139 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Error writeArchive (StringRef ArcName, ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin, unique_ptr OldArchiveBuf, optional IsEC, function_ref Warn)

    Defined at line 1320 of file llvm/lib/Object/ArchiveWriter.cpp

  • bool isNewLikeFn (const Value * V, const TargetLibraryInfo * TLI)

    Tests if a value is a call or invoke to a library function that

    allocates memory via new.

    Defined at line 300 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void initializeBarrierNoopPass (PassRegistry & )

    Defined at line 46 of file llvm/lib/Transforms/IPO/BarrierNoopPass.cpp

  • void spliceBB (int & Builder, BasicBlock * New, bool CreateBranch)

    Splice a BasicBlock at an IRBuilder's current insertion point. Its new

    insert location will stick to after the instruction before the insertion

    point (instead of moving with the instruction the InsertPoint stores

    internally).

    Defined at line 338 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void spliceBB (IRBuilder<> & Builder, BasicBlock * New, bool CreateBranch)

    Splice a BasicBlock at an IRBuilder's current insertion point. Its new

    insert location will stick to after the instruction before the insertion

    point (instead of moving with the instruction the InsertPoint stores

    internally).

    Defined at line of file

  • optional convertExceptionBehaviorToStr (ExceptionBehavior )

    For any ExceptionBehavior enumerator, returns a string valid as

    input in constrained intrinsic exception behavior metadata.

    Defined at line 75 of file llvm/lib/IR/FPEnv.cpp

  • void report_fatal_error (const char * reason, bool gen_crash_diag)

    Defined at line 95 of file llvm/lib/Support/ErrorHandling.cpp

  • const SCEV * normalizeForPostIncUseIf (const SCEV * S, NormalizePredTy Pred, ScalarEvolution & SE)

    Normalize

    for all add recurrence sub-expressions for which

    returns true.

    Defined at line 115 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp

  • unique_ptr parseIRFile (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, ParserCallbacks Callbacks, AsmParserContext * ParserContext)

    If the given file holds a bitcode image, return a Module for it.

    Otherwise, attempt to parse it as LLVM Assembly and return a Module

    for it.

    Parameters

    DataLayoutCallback Override datalayout in the llvm assembly.

    Defined at line 97 of file llvm/lib/IRReader/IRReader.cpp

  • bool nonStrictlyPostDominate (const BasicBlock * ThisBlock, const BasicBlock * OtherBlock, const DominatorTree * DT, const PostDominatorTree * PDT)

    In case that two BBs

    and

    are control flow

    equivalent but they do not strictly dominate and post-dominate each

    other, we determine if

    is reached after

    in the control flow.

    Defined at line 405 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • bool ConstantFoldTerminator (BasicBlock * BB, bool DeleteDeadConditions, const TargetLibraryInfo * TLI, DomTreeUpdater * DTU)

    ConstantFoldTerminator - If a terminator instruction is predicated on a

    constant value, convert it into an unconditional branch to the constant

    destination. This is a nontrivial operation because the successors of this

    basic block must have their PHI nodes updated.

    Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch

    conditions and indirectbr addresses this might make dead if

    DeleteDeadConditions is true.

    Defined at line 134 of file llvm/lib/Transforms/Utils/Local.cpp

  • void thinLTOInternalizeAndPromoteInIndex (ModuleSummaryIndex & Index, function_ref<bool (StringRef, ValueInfo)> isExported, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)

    Update the linkages in the given

    to mark exported values

    as external and non-exported values as internal.

    Defined at line 554 of file llvm/lib/LTO/LTO.cpp

  • MachineFunctionPass * createGCEmptyBasicBlocksPass ()

    createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without

    real code) appear as the result of optimization passes removing

    instructions. These blocks confuscate profile analysis (e.g., basic block

    sections) since they will share the address of their fallthrough blocks.

    This pass garbage-collects such basic blocks.

    Defined at line 97 of file llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp

  • bool UpgradeModuleFlags (Module & M)

    This checks for module flags which should be upgraded. It returns true if

    module is modified.

    Defined at line 5969 of file llvm/lib/IR/AutoUpgrade.cpp

  • DebugLoc getDebugValueLoc (DbgVariableRecord * DVR)

    Produce a DebugLoc to use for each dbg.declare that is promoted to a

    dbg.value.

    Defined at line 157 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeBasicAAWrapperPassPass (PassRegistry & )

    Defined at line 2035 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • bool expandDivisionUpTo32Bits (BinaryOperator * Div)

    Generate code to divide two integers of bitwidth up to 32 bits. Uses the

    above routines and extends the inputs/truncates the outputs to operate

    in 32 bits; that is, these routines are good for targets that have no

    or very little support for smaller than 32 bit integer arithmetic.

    Replace Div with emulation code.

    Defined at line 551 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • RegAllocScore calculateRegAllocScore (const MachineFunction & MF, const MachineBlockFrequencyInfo & MBFI)

    Calculate a score. When comparing 2 scores for the same function but

    different policies, the better policy would have a smaller score.

    The implementation is the overload below (which is also easily unittestable)

    Defined at line 77 of file llvm/lib/CodeGen/RegAllocScore.cpp

  • error_code errorToErrorCodeAndEmitErrors (LLVMContext & Ctx, Error Err)

    These functions are for converting Expected/Error values to

    ErrorOr/std::error_code for compatibility with legacy clients. FIXME:

    Remove these functions once no longer needed by the C and libLTO APIs.

    Defined at line 1026 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • ScheduleDAGSDNodes * createBURRListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)

    createBURRListDAGScheduler - This creates a bottom up register usage

    reduction list scheduler.

    Defined at line 3145 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • Constant * ConstantFoldShuffleVectorInstruction (Constant * V1, Constant * V2, ArrayRef Mask)

    Attempt to constant fold a shufflevector instruction with the

    specified operands and mask. See class ShuffleVectorInst for a description

    of the mask representation. The constant result is returned if successful;

    if not, null is returned.

    Defined at line 440 of file llvm/lib/IR/ConstantFold.cpp

  • void emitLinkerFlagsForGlobalCOFF (raw_ostream & OS, const GlobalValue * GV, const Triple & TT, Mangler & Mangler)

    Defined at line 214 of file llvm/lib/IR/Mangler.cpp

  • bool simplifyLoopIVs (Loop * L, ScalarEvolution * SE, DominatorTree * DT, LoopInfo * LI, const TargetTransformInfo * TTI, SmallVectorImpl<WeakTrackingVH> & Dead)

    Simplify users of induction variables within this

    loop. This does not actually change or add IVs.

    Defined at line 1035 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • int parseAssemblyString (StringRef AsmString, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, AsmParserContext * ParserContext)

    The function is a secondary interface to the LLVM Assembly Parser. It parses

    an ASCII string that (presumably) contains LLVM Assembly code. It returns a

    Module (intermediate representation) with the corresponding features. Note

    that this does not verify that the generated Module is valid, so you should

    run the verifier after parsing the file to check that it is okay.

    Parse LLVM Assembly from a string

    Parameters

    AsmString The string containing assembly
    Err Error result info.
    Context Context in which to allocate globals info.
    Slots The optional slot mapping that will be initialized during parsing.

    Defined at line 141 of file llvm/lib/AsmParser/Parser.cpp

  • basic_string AnnotateInlinePassName (InlineContext IC)

    Defined at line 622 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • void viewRegionOnly (llvm::RegionInfo * RI)

    Open a viewer to display the GraphViz vizualization of the analysis

    result.

    Useful to call in the debugger.

    Shows only the BasicBlock names without their instructions.

    Parameters

    RI The analysis to display.

    Defined at line 243 of file llvm/lib/Analysis/RegionPrinter.cpp

  • char * rustDemangle (basic_string_view MangledName)

    Demangles a Rust v0 mangled symbol.

    Defined at line 151 of file llvm/lib/Demangle/RustDemangle.cpp

  • int getAssumptions (const CallBase & CB)

    Return the set of all assumptions for the call

    Defined at line 88 of file llvm/lib/IR/Assumptions.cpp

  • void initializeBlockFrequencyInfoWrapperPassPass (PassRegistry & )

    Defined at line 299 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp

  • void expandMemSetPatternAsLoop (MemSetPatternInst * MemSet)

    Expand

    as a loop.

    is not deleted.

    Defined at line 1078 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • FunctionPass * createX86PadShortFunctions ()

    Return a pass that pads short functions with NOOPs.

    This will prevent a stall when returning on the Atom.

    Defined at line 96 of file llvm/lib/Target/X86/X86PadShortFunction.cpp

  • void EmitDecoder (const RecordKeeper & RK, raw_ostream & OS)

    Defined in DecoderEmitter.cpp

    Defined at line 1621 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • Constant * ConstantFoldConstant (const Constant * C, const DataLayout & DL, const TargetLibraryInfo * TLI)

    ConstantFoldConstant - Fold the constant using the specified DataLayout.

    This function always returns a non-null constant: Either the folding result,

    or the original constant if further folding is not possible.

    Defined at line 1184 of file llvm/lib/Analysis/ConstantFolding.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const StackLifetime::LiveRange & R)

    Defined at line 176 of file llvm/include/llvm/Analysis/StackLifetime.h

  • void report_fatal_error (StringRef reason, bool gen_crash_diag)

    Defined at line 99 of file llvm/lib/Support/ErrorHandling.cpp

  • optional getAllocToken (AllocTokenMode Mode, const AllocTokenMetadata & Metadata, uint64_t MaxTokens)

    Calculates stable allocation token ID. Returns std::nullopt for stateful

    modes that are only available in the AllocToken pass.

    Parameters

    Mode The token generation mode.
    Metadata The metadata about the allocation.
    MaxTokens The maximum number of tokens (must not be 0)

    Returns

    The calculated allocation token ID, or std::nullopt.

    Defined at line 50 of file llvm/lib/Support/AllocToken.cpp

  • bool simplifyLoop (Loop * L, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    Simplify each loop in a loop nest recursively.

    This takes a potentially un-simplified loop L (and its children) and turns

    it into a simplified loop nest with preheaders and single backedges. It will

    update

    and

    analyses if they're non-null, and LCSSA if

    is true.

    Defined at line 697 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • bool formDedicatedExitBlocks (Loop * L, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    Ensure that all exit blocks of the loop are dedicated exits.

    For any loop exit block with non-loop predecessors, we split the loop

    predecessors to use a dedicated loop exit block. We update the dominator

    tree and loop info if provided, and will preserve LCSSA if requested.

    Defined at line 58 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • std::pair<std::unique_ptr<ReducerWorkItem>, bool> parseReducerWorkItem (StringRef ToolName, StringRef Filename, LLVMContext & Ctxt, std::unique_ptr<TargetMachine> & TM, bool IsMIR)

    Defined at line of file

  • bool useUniversalCRT (ToolsetLayout VSLayout, const std::string & VCToolChainPath, ArchType TargetArch, llvm::vfs::FileSystem & VFS)

    Check if the Include path of a specified version of Visual Studio contains

    specific header files. If not, they are probably shipped with Universal CRT.

    Defined at line 393 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • Value * extractWidenableCondition (const User * U)

    Returns widenable_condition if it exists in the expression tree rooting from

    and has only one use.

    Defined at line 151 of file llvm/lib/Analysis/GuardUtils.cpp

  • MDNode * getBranchWeightMDNode (const Instruction & I)

    Get the branch weights metadata node

    Parameters

    I The Instruction to get the weights from.

    Defined at line 175 of file llvm/lib/IR/ProfDataUtils.cpp

  • error_code getRandomBytes (void * Buffer, size_t Size)

    Get random vector of specified size

    Defined at line 70 of file llvm/lib/Support/RandomNumberGenerator.cpp

  • Value * simplifySubInst (Value * LHS, Value * RHS, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)

    Given operands for a Sub, fold the result or return null.

    Defined at line 892 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • basic_string getDebuginfodSourceUrlPath (ArrayRef ID, StringRef SourceFilePath)

    Get the full URL path for a source request of a given BuildID and file

    path.

    Defined at line 123 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void DecodePSHUFMask (unsigned int NumElts, unsigned int ScalarBits, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps.

    Defined at line 148 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void guessSuccessors (const MachineBasicBlock & MBB, SmallVectorImpl<MachineBasicBlock *> & Result, bool & IsFallthrough)

    Determine a possible list of successors of a basic block based on the

    basic block machine operand being used inside the block. This should give

    you the correct list of successor blocks in most cases except for things

    like jump tables where the basic block references can't easily be found.

    The MIRPRinter will skip printing successors if they match the result of

    this function and the parser will use this function to construct a list if

    it is missing.

    Defined at line 675 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • ModulePass * createRuntimeLibraryInfoWrapperPass ()

    Defined at line 47 of file llvm/lib/Analysis/RuntimeLibcallInfo.cpp

  • void initializeBranchFolderLegacyPass (PassRegistry & )

    Defined at line 120 of file llvm/lib/CodeGen/BranchFolding.cpp

  • Function * createSanitizerCtor (Module & M, StringRef CtorName)

    Creates sanitizer constructor function.

    Returns

    Returns pointer to constructor.

    Defined at line 243 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • bool isMallocOrCallocLikeFn (const Value * V, const TargetLibraryInfo * TLI)

    Tests if a value is a call or invoke to a library function that

    allocates memory similar to malloc or calloc.

    Defined at line 306 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void report_fatal_error (const Twine & reason, bool gen_crash_diag)

    Defined at line 103 of file llvm/lib/Support/ErrorHandling.cpp

  • SmallVector GetShadowBytes (const SmallVectorImpl<ASanStackVariableDescription> & Vars, const ASanStackFrameLayout & Layout)

    Returns shadow bytes with marked red zones. This shadow represents the state

    if the stack frame when all local variables are inside of the own scope.

    Defined at line 114 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp

  • MachineFunctionPass * createBasicBlockSectionsPass ()

    createBasicBlockSections Pass - This pass assigns sections to machine

    basic blocks and is enabled with -fbasic-block-sections.

    Defined at line 494 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • char * dlangDemangle (basic_string_view MangledName)

    Demangles a D mangled symbol.

    Defined at line 565 of file llvm/lib/Demangle/DLangDemangle.cpp

  • void UpgradeNVVMAnnotations (Module & M)

    Convert legacy nvvm.annotations metadata to appropriate function

    attributes.

    Defined at line 5782 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeBranchProbabilityInfoWrapperPassPass (PassRegistry & )

    Defined at line 68 of file llvm/lib/Analysis/BranchProbabilityInfo.cpp

  • MCStreamer * createNullStreamer (MCContext & Ctx)

    Create a dummy machine code streamer, which does nothing. This is useful for

    timing the assembler front end.

    Defined at line 51 of file llvm/lib/MC/MCNullStreamer.cpp

  • Pass * createLoopTermFoldPass ()

    ===----------------------------------------------------------------------===//

    LoopTermFold - This pass attempts to eliminate the last use of an IV in

    a loop terminator instruction by rewriting it in terms of another IV.

    Expected to be run immediately after LSR.

    Defined at line 375 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp

  • bool stripDebugifyMetadata (Module & M)

    Strip out all of the metadata and debug info inserted by debugify. If no

    llvm.debugify module-level named metadata is present, this is a no-op.

    Returns true if any change was made.

    Defined at line 306 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • bool addAssumptions (Function & F, const DenseSet<StringRef> & Assumptions)

    Appends the set of assumptions

    to

    .

    Defined at line 93 of file llvm/lib/IR/Assumptions.cpp

  • bool addAssumptions (Function & F, const int & Assumptions)

    Appends the set of assumptions

    to

    .

    Defined at line of file

  • void emitLinkerFlagsForUsedCOFF (raw_ostream & OS, const GlobalValue * GV, const Triple & T, Mangler & M)

    Defined at line 280 of file llvm/lib/IR/Mangler.cpp

  • FunctionPass * createScalarizerPass (const ScalarizerPassOptions & Options)

    Create a legacy pass manager instance of the Scalarizer pass

    Defined at line 453 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp

  • void expandAtomicMemCpyAsLoop (AnyMemCpyInst * AtomicMemCpy, const TargetTransformInfo & TTI, ScalarEvolution * SE)

    Expand

    as a loop.

    is not deleted.

    Defined at line 1087 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • RegAllocScore calculateRegAllocScore (const MachineFunction & MF, llvm::function_ref<double (const MachineBasicBlock &)> GetBBFreq, llvm::function_ref<bool (const MachineInstr &)> IsTriviallyRematerializable)

    Implementation of the above, which is also more easily unittestable.

    Defined at line 90 of file llvm/lib/CodeGen/RegAllocScore.cpp

  • bool runPassPipeline (StringRef Arg0, Module & M, TargetMachine * TM, TargetLibraryInfoImpl * TLII, ToolOutputFile * Out, ToolOutputFile * ThinLinkOut, ToolOutputFile * OptRemarkFile, StringRef PassPipeline, ArrayRef<PassPlugin> PassPlugins, ArrayRef<std::function<void (PassBuilder &)>> PassBuilderCallbacks, OutputKind OK, VerifierKind VK, bool ShouldPreserveAssemblyUseListOrder, bool ShouldPreserveBitcodeUseListOrder, bool EmitSummaryIndex, bool EmitModuleHash, bool EnableDebugify, bool VerifyDIPreserve, bool EnableProfcheck, bool UnifiedLTO)

    Driver function to run the new pass manager over a module.

    This function only exists factored away from opt.cpp in order to prevent

    inclusion of the new pass manager headers and the old headers into the same

    file. It's interface is consequentially somewhat ad-hoc, but will go away

    when the transition finishes.

    ThinLTOLinkOut is only used when OK is OK_OutputThinLTOBitcode, and can be

    nullptr.

    Defined at line 354 of file llvm/tools/opt/NewPMDriver.cpp

  • void initializeBranchRelaxationLegacyPass (PassRegistry & )

    Defined at line 142 of file llvm/lib/CodeGen/BranchRelaxation.cpp

  • Pass * createLCSSAPass ()

    ===----------------------------------------------------------------------===//

    LCSSA - This pass inserts phi nodes at loop boundaries to simplify other loop

    optimizations.

    Defined at line 525 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void PrintStatistics ()

    Print statistics to the file returned by CreateInfoOutputFile().

    Defined at line 229 of file llvm/lib/Support/Statistic.cpp

  • ScheduleDAGSDNodes * createSourceListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)

    createSourceListDAGScheduler - This creates a bottom up list scheduler that

    schedules nodes in source code order when possible.

    Defined at line 3158 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • error_code prepareTempFiles (int & FD, ArrayRef<StringRef> SR, int & FileName)

    Ensure temporary files exist, creating or re-using them.

    contains

    file descriptors (-1 indicates that the file should be created) and

    contains the corresponding initial content.

    will have

    the filenames filled in when creating files. Return first error code (if

    any) and stop.

    Defined at line of file

  • error_code prepareTempFiles (SmallVector<int> & FD, ArrayRef SR, SmallVector<std::string> & FileName)

    Ensure temporary files exist, creating or re-using them.

    contains

    file descriptors (-1 indicates that the file should be created) and

    contains the corresponding initial content.

    will have

    the filenames filled in when creating files. Return first error code (if

    any) and stop.

    Defined at line 178 of file llvm/lib/IR/PrintPasses.cpp

  • bool bypassSlowDivision (BasicBlock * BB, const int & BypassWidth)

    This optimization identifies DIV instructions in a BB that can be

    profitably bypassed and carried out with a shorter, faster divide.

    This optimization may add basic blocks immediately after BB; for obvious

    reasons, you shouldn't pass those blocks to bypassSlowDivision.

    Defined at line of file

  • bool bypassSlowDivision (BasicBlock * BB, const DenseMap<unsigned int, unsigned int> & BypassWidth)

    This optimization identifies DIV instructions in a BB that can be

    profitably bypassed and carried out with a shorter, faster divide.

    This optimization may add basic blocks immediately after BB; for obvious

    reasons, you shouldn't pass those blocks to bypassSlowDivision.

    Defined at line 447 of file llvm/lib/Transforms/Utils/BypassSlowDivision.cpp

  • const SCEV * denormalizeForPostIncUse (const SCEV * S, const PostIncLoopSet & Loops, ScalarEvolution & SE)

    Denormalize

    to be post-increment for all loops present in

    Defined at line 120 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp

  • bool isReachedBefore (const Instruction * I0, const Instruction * I1, const DominatorTree * DT, const PostDominatorTree * PDT)

    Check if I0 is reached before I1 in the control flow.

    Defined at line 435 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • KnownBits computeKnownBits (const Value * V, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)

    Returns the known bits rather than passing by reference.

    Defined at line 161 of file llvm/lib/Analysis/ValueTracking.cpp

  • MachineFunctionPass * createBasicBlockPathCloningPass ()

    Defined at line 260 of file llvm/lib/CodeGen/BasicBlockPathCloning.cpp

  • void initializeBreakCriticalEdgesPass (PassRegistry & )

    Defined at line 74 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • bool expandDivisionUpTo64Bits (BinaryOperator * Div)

    Generate code to divide two integers of bitwidth up to 64 bits. Uses the

    above routines and extends the inputs/truncates the outputs to operate

    in 64 bits.

    Replace Div with emulation code.

    Defined at line 599 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • void PrintStatistics (raw_ostream & OS)

    Print statistics to the given output stream.

    Defined at line 176 of file llvm/lib/Support/Statistic.cpp

  • FunctionPass * createX86FixupLEAs ()

    Return a pass that selectively replaces certain instructions (like add,

    sub, inc, dec, some shifts, and some multiplies) by equivalent LEA

    instructions, in order to eliminate execution delays in some processors.

    Defined at line 213 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • Value * simplifyMulInst (Value * LHS, Value * RHS, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)

    Given operands for a Mul, fold the result or return null.

    Defined at line 964 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Expected<CachePruningPolicy> parseCachePruningPolicy (StringRef PolicyStr)

    Parse the given string as a cache pruning policy. Defaults are taken from a

    default constructed CachePruningPolicy object.

    For example: "prune_interval=30s:prune_after=24h:cache_size=50%"

    which means a pruning interval of 30 seconds, expiration time of 24 hours

    and maximum cache size of 50% of available disk space.

    Defined at line 77 of file llvm/lib/Support/CachePruning.cpp

  • void DecodePSHUFHWMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for pshufhw.

    Defined at line 164 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool isPotentiallyReachable (const Instruction * From, const Instruction * To, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)

    Determine whether instruction 'To' is reachable from 'From', without passing

    through any blocks in ExclusionSet, returning true if uncertain.

    Determine whether there is a path from From to To within a single function.

    Returns false only if we can prove that once 'From' has been executed then

    'To' can not be executed. Conservatively returns true.

    This function is linear with respect to the number of blocks in the CFG,

    walking down successors from From to reach To, with a fixed threshold.

    Using DT or LI allows us to answer more quickly. LI reduces the cost of

    an entire loop of any number of blocks to be the same as the cost of a

    single block. DT reduces the cost by allowing the search to terminate when

    we find a block that dominates the block containing 'To'. DT is most useful

    on branchy code but not loops, and LI is most useful on code with loops but

    does not help on branchy code outside loops.

    Defined at line 282 of file llvm/lib/Analysis/CFG.cpp

  • bool StripDebugInfo (Module & M)

    Strip debug info in the module if it exists.

    To do this, we remove all calls to the debugger intrinsics and any named

    metadata for debugging. We also remove debug locations for instructions.

    Return true if module is modified.

    Defined at line 612 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeBreakFalseDepsPass (PassRegistry & )

    Defined at line 105 of file llvm/lib/CodeGen/BreakFalseDeps.cpp

  • void PrintStatisticsJSON (raw_ostream & OS)

    Print statistics in JSON format. This does include all global timers (

    Defined at line 203 of file llvm/lib/Support/Statistic.cpp

  • void collectEphemeralRecipesForVPlan (VPlan & Plan, DenseSet<VPRecipeBase *> & EphRecipes)

    Collect a VPlan's ephemeral recipes (those used only by an assume).

    Defined at line 322 of file llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp

  • Expected<std::string> getCachedOrDownloadSource (ArrayRef ID, StringRef SourceFilePath)

    Fetches a specified source file by searching the default local cache

    directory and server URLs.

    Defined at line 132 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • Constant * ConstantFoldExtractValueInstruction (Constant * Agg, ArrayRef Idxs)

    Attempt to constant fold an extractvalue instruction with the

    specified operands and indices. The constant result is returned if

    successful; if not, null is returned.

    Defined at line 499 of file llvm/lib/IR/ConstantFold.cpp

  • void DeleteDeadBlocks (ArrayRef<BasicBlock *> BBs, DomTreeUpdater * DTU, bool KeepOneInputPHIs)

    Delete the specified blocks from

    The set of deleted blocks must have

    no predecessors that are not being deleted themselves.

    must have no

    duplicating blocks. If there are loops among this set of blocks, all

    relevant loop info updates should be done before this function is called.

    If

    is true, one-input Phis in successors of blocks

    being deleted will be preserved.

    Defined at line 150 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool getWindowsSDKDir (vfs::FileSystem & VFS, optional WinSdkDir, optional WinSdkVersion, optional WinSysRoot, std::string & Path, int & Major, std::string & WindowsSDKIncludeVersion, std::string & WindowsSDKLibVersion)

    Get Windows SDK installation directory.

    Defined at line 402 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • basic_string computeLTOCacheKey (const lto::Config & Conf, const ModuleSummaryIndex & Index, StringRef ModuleID, const FunctionImporter::ImportMapTy & ImportList, const int & ExportList, const int & ResolvedODR, const int & DefinedGlobals, const int & CfiFunctionDefs, const int & CfiFunctionDecls)

    Computes a unique hash for the Module considering the current list of

    export/import and other global analysis results.

    Defined at line of file

  • basic_string computeLTOCacheKey (const lto::Config & Conf, const ModuleSummaryIndex & Index, StringRef ModuleID, const FunctionImporter::ImportMapTy & ImportList, const int & ExportList, const int & ResolvedODR, const GVSummaryMapTy & DefinedGlobals, const int & CfiFunctionDefs, const int & CfiFunctionDecls)

    Computes a unique hash for the Module considering the current list of

    export/import and other global analysis results.

    Defined at line 104 of file llvm/lib/LTO/LTO.cpp

  • bool isAllocLikeFn (const Value * V, const TargetLibraryInfo * TLI)

    Tests if a value is a call or invoke to a library function that

    allocates memory (either malloc, calloc, or strdup like).

    Defined at line 313 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void UpgradeARCRuntime (Module & M)

    Convert calls to ARC runtime functions to intrinsic calls and upgrade the

    old retain release marker to new module flag format.

    Defined at line 5847 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool stripDebugInfo (Function & F)

    Defined at line 578 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeCanonicalizeFreezeInLoopsPass (PassRegistry & )

    Defined at line 265 of file llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp

  • bool addAssumptions (CallBase & CB, const int & Assumptions)

    Appends the set of assumptions

    to

    .

    Defined at line of file

  • bool addAssumptions (CallBase & CB, const DenseSet<StringRef> & Assumptions)

    Appends the set of assumptions

    to

    .

    Defined at line 97 of file llvm/lib/IR/Assumptions.cpp

  • RetainedKnowledge simplifyRetainedKnowledge (AssumeInst * Assume, RetainedKnowledge RK, AssumptionCache * AC, DominatorTree * DT)

    canonicalize the RetainedKnowledge RK. it is assumed that RK is part of

    Assume. This will return an empty RetainedKnowledge if the knowledge is

    useless.

    Defined at line 318 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp

  • void ComputeValueVTs (const TargetLowering & TLI, const DataLayout & DL, Type * Ty, SmallVectorImpl<EVT> & ValueVTs, SmallVectorImpl<EVT> * MemVTs, SmallVectorImpl<TypeSize> * Offsets, TypeSize StartingOffset)

    ComputeValueVTs - Given an LLVM IR type, compute a sequence of

    EVTs that represent all the individual underlying

    non-aggregate types that comprise it.

    If Offsets is non-null, it points to a vector to be filled in

    with the in-memory offsets of each of the individual values.

    Defined at line 119 of file llvm/lib/CodeGen/Analysis.cpp

  • Expected writeArchiveToBuffer (ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin, function_ref Warn)

    writeArchiveToBuffer is similar to writeArchive but returns the Archive in a

    buffer instead of writing it out to a file.

    Defined at line 1353 of file llvm/lib/Object/ArchiveWriter.cpp

  • MDNode * getValidBranchWeightMDNode (const Instruction & I)

    Get the valid branch weights metadata node

    Parameters

    I The Instruction to get the weights from.

    Defined at line 182 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeCFGSimplifyPassPass (PassRegistry & )

    Defined at line 435 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • bar * fub ()

    Defined at line 364 of file llvm/unittests/Support/Casting.cpp

  • void checkForCycles (const SDNode * N, const SelectionDAG * DAG, bool force)

    Defined at line 14393 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • optional getArm64ECMangledFunctionName (StringRef Name)

    Returns the ARM64EC mangled function name unless the input is already

    mangled.

    Defined at line 294 of file llvm/lib/IR/Mangler.cpp

  • bool isSafeToLoadUnconditionally (Value * V, Align Alignment, const APInt & Size, const DataLayout & DL, Instruction * ScanFrom, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)

    Check if executing a load of this pointer value cannot trap.

    If DT and ScanFrom are specified this method performs context-sensitive

    analysis and returns true if it is safe to load immediately before ScanFrom.

    If it is not obviously safe to load from the specified pointer, we do

    a quick local scan of the basic block containing

    to determine

    if the address is already accessed.

    This uses the pointee type to determine how many bytes need to be safe to

    load from the pointer.

    Defined at line 435 of file llvm/lib/Analysis/Loads.cpp

  • std::pair<Function *, FunctionCallee> createSanitizerCtorAndInitFunctions (Module & M, StringRef CtorName, StringRef InitName, ArrayRef InitArgTypes, ArrayRef<Value *> InitArgs, StringRef VersionCheckName, bool Weak)

    Creates sanitizer constructor function, and calls sanitizer's init

    function from it.

    Returns

    Returns pair of pointers to constructor, and init functions

    respectively.

    Defined at line 257 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • FunctionPass * createSCEVAAWrapperPass ()

    Creates an instance of

    Defined at line 165 of file llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp

  • MachineFunctionPass * createBasicBlockMatchingAndInferencePass ()

    createBasicBlockMatchingAndInferencePass - This pass enables matching

    and inference when using propeller.

    Defined at line 193 of file llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp

  • void UpgradeSectionAttributes (Module & M)

    Defined at line 6112 of file llvm/lib/IR/AutoUpgrade.cpp

  • error_code cleanUpTempFiles (ArrayRef<std::string> FileName)

    Remove the temporary files in

    Typically used in conjunction

    with prepareTempFiles. Return first error code (if any) and stop..

    Defined at line 211 of file llvm/lib/IR/PrintPasses.cpp

  • void initializeCFGuardPass (PassRegistry & )

    Defined at line 306 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp

  • FunctionPass * createX86FixupInstTuning ()

    Return a pass that replaces equivalent slower instructions with faster

    ones.

    Defined at line 66 of file llvm/lib/Target/X86/X86FixupInstTuning.cpp

  • Value * simplifySDivInst (Value * LHS, Value * RHS, bool IsExact, const SimplifyQuery & Q)

    Given operands for an SDiv, fold the result or return null.

    Defined at line 1221 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void DecodePSHUFLWMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for pshuflw.

    Defined at line 178 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • SmallVector GetShadowBytesAfterScope (const SmallVectorImpl<ASanStackVariableDescription> & Vars, const ASanStackFrameLayout & Layout)

    Returns shadow bytes with marked red zones and after scope. This shadow

    represents the state if the stack frame when all local variables are outside

    of the own scope.

    Defined at line 133 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp

  • Pass * createLoopUnrollPass (int OptLevel, bool OnlyWhenForced, bool ForgetAllSCEV, int Threshold, int Count, int AllowPartial, int Runtime, int UpperBound, int AllowPeeling)

    ===----------------------------------------------------------------------===//

    LoopUnroll - This pass is a simple loop unrolling pass.

    Defined at line 1493 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • basic_string getDebuginfodExecutableUrlPath (ArrayRef ID)

    Get the full URL path for an executable request of a given BuildID.

    Defined at line 138 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void initializeCFGuardLongjmpPass (PassRegistry & )

    Defined at line 57 of file llvm/lib/CodeGen/CFGuardLongjmp.cpp

  • bool isInstructionTriviallyDead (Instruction * I, const TargetLibraryInfo * TLI)

    Return true if the result produced by the instruction is not used, and the

    instruction will return. Certain side-effecting instructions are also

    considered dead if there are no uses of the instruction.

    Defined at line 402 of file llvm/lib/Transforms/Utils/Local.cpp

  • CallBase & promoteCallWithVTableCmp (CallBase & CB, Instruction * VPtr, Function * Callee, ArrayRef AddressPoints, MDNode * BranchWeights)

    This is similar to `promoteCallWithIfThenElse` except that the condition to

    promote a virtual call is that

    is the same as any of

    This function is expected to be used on virtual calls (a subset of indirect

    calls).

    is the virtual table address stored in the objects, and

    contains vtable address points. A vtable address point is

    a location inside the vtable that's referenced by vpointer in C++ objects.

    TODO: sink the address-calculation instructions of indirect callee to the

    indirect call fallback after transformation.

    Defined at line 664 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • bool isReallocLikeFn (const Function * F)

    Tests if a function is a call or invoke to a library function that

    reallocates memory (e.g., realloc).

    Defined at line 320 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void viewRegionOnly (const llvm::Function * F)

    Analyze the regions of a function and open its GraphViz

    visualization in a viewer.

    Useful to call in the debugger.

    Shows only the BasicBlock names without their instructions.

    The result of a new analysis may differ from the RegionInfo the pass

    manager currently holds.

    Parameters

    F Function to analyze.

    Defined at line 245 of file llvm/lib/Analysis/RegionPrinter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AddressRange & R)

    Defined at line 64 of file llvm/lib/DebugInfo/GSYM/ExtractRanges.cpp

  • Intrinsic::ID getConstrainedIntrinsicID (const Instruction & Instr)

    Returns constrained intrinsic id to represent the given instruction in

    strictfp function. If the instruction is already a constrained intrinsic or

    does not have a constrained intrinsic counterpart, the function returns

    zero.

    Defined at line 92 of file llvm/lib/IR/FPEnv.cpp

  • void initializeCFIFixupPass (PassRegistry & )

    Defined at line 93 of file llvm/lib/CodeGen/CFIFixup.cpp

  • XXH128_hash_t xxh3_128bits (ArrayRef<uint8_t> data)

    XXH3's 128-bit variant.

    Defined at line 1023 of file llvm/lib/Support/xxhash.cpp

  • void markRegisterParameterAttributes (Function * F)

    Handle -mregparm for the given function.

    Note that this function is a rough approximation that only works for simple

    function signatures; it does not apply other relevant attributes for

    function signatures, including sign/zero-extension for arguments and return

    values.

    Defined at line 1430 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • ScheduleDAGSDNodes * createHybridListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel )

    createHybridListDAGScheduler - This creates a bottom up register pressure

    aware list scheduler that make use of latency information to avoid stalls

    for long latency instructions in low register pressure mode. In high

    register pressure mode it schedules to reduce register pressure.

    Defined at line 3172 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • BasicBlock * splitBB (InsertPoint IP, bool CreateBranch, DebugLoc DL, Twine Name)

    Split a BasicBlock at an InsertPoint, even if the block is degenerate

    (missing the terminator).

    llvm::SplitBasicBlock and BasicBlock::splitBasicBlock require a well-formed

    BasicBlock.

    is used for the new successor block. If

    is true, a branch to the new successor will new created such that

    semantically there is no change; otherwise the block of the insertion point

    remains degenerate and it is the caller's responsibility to insert a

    terminator.

    is used as the debug location for the branch instruction

    if one is created. Returns the new successor block.

    Defined at line 353 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Error write (MCStreamer & Out, ArrayRef Inputs, OnCuIndexOverflow OverflowOptValue, Dwarf64StrOffsetsPromotion StrOffsetsOptValue)

    Defined at line 677 of file llvm/lib/DWP/DWP.cpp

  • MachineFunctionPass * createMachineBlockHashInfoPass ()

    createMachineBlockHashInfoPass - This pass computes basic block hashes.

    Defined at line 113 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp

  • void UpgradeFunctionAttributes (Function & F)

    Correct any IR that is relying on old function attribute behavior.

    Defined at line 6185 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool hasBranchWeightOrigin (const Instruction & I)

    Check if Branch Weight Metadata has an "expected" field from an llvm.expect*

    intrinsic

    Defined at line 150 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeCFIInstrInserterPass (PassRegistry & )

    Defined at line 150 of file llvm/lib/CodeGen/CFIInstrInserter.cpp

  • void reportFatalInternalError (const char * reason)

    Report a fatal error that likely indicates a bug in LLVM. It serves a

    similar purpose as an assertion, but is always enabled, regardless of the

    value of NDEBUG.

    This will call installed error handlers (or print the message by default)

    and then abort. This will produce a crash trace and *will* ask users to

    report an LLVM bug.

    Defined at line 140 of file llvm/lib/Support/ErrorHandling.cpp

  • FunctionPass * createX86FixupVectorConstants ()

    Return a pass that reduces the size of vector constant pool loads.

    Defined at line 62 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • Constant * ConstantFoldInsertValueInstruction (Constant * Agg, Constant * Val, ArrayRef Idxs)

    Attempt to constant fold an insertvalue instruction with the specified

    operands and indices. The constant result is returned if successful; if

    not, null is returned.

    Defined at line 511 of file llvm/lib/IR/ConstantFold.cpp

  • bool nonMicrosoftDemangle (basic_string_view MangledName, std::string & Result, bool CanHaveLeadingDot, bool ParseParams)

    Defined at line 50 of file llvm/lib/Demangle/Demangle.cpp

  • bool collectDebugInfoMetadata (Module & M, int Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass)

    Collect original debug information before a pass.

    Parameters

    M The module to collect debug information from.
    Functions A range of functions to collect debug information from.
    DebugInfoBeforePass DI metadata before a pass.
    Banner A prefix string to add to debug/error messages.
    NameOfWrappedPass A name of a pass to add to debug/error messages.

    Defined at line of file

  • bool collectDebugInfoMetadata (Module & M, iterator_range Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass)

    Collect original debug information before a pass.

    Parameters

    M The module to collect debug information from.
    Functions A range of functions to collect debug information from.
    DebugInfoBeforePass DI metadata before a pass.
    Banner A prefix string to add to debug/error messages.
    NameOfWrappedPass A name of a pass to add to debug/error messages.

    Defined at line 366 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • void ComputeValueVTs (const TargetLowering & TLI, const DataLayout & DL, Type * Ty, SmallVectorImpl<EVT> & ValueVTs, SmallVectorImpl<EVT> * MemVTs, SmallVectorImpl<uint64_t> * FixedOffsets, uint64_t StartingOffset)

    Defined at line 133 of file llvm/lib/CodeGen/Analysis.cpp

  • bool PointerMayBeCapturedBefore (const Value * V, bool ReturnCaptures, const Instruction * I, const DominatorTree * DT, bool IncludeI, unsigned int MaxUsesToExplore, const LoopInfo * LI)

    PointerMayBeCapturedBefore - Return true if this pointer value may be

    captured by the enclosing function (which is required to exist). If a

    DominatorTree is provided, only captures which happen before the given

    instruction are considered. This routine can be expensive, so consider

    caching the results. The boolean ReturnCaptures specifies whether

    returning the value (or part of it) from the function counts as capturing

    it or not. Captures by the provided instruction are considered if the

    final parameter is true.

    MaxUsesToExplore specifies how many uses the analysis should explore for

    one value before giving up due too "too many uses". If MaxUsesToExplore

    is zero, a default value is assumed.

    This function only considers captures of the passed value via its def-use

    chain, without considering captures of values it may be based on, or

    implicit captures such as for external globals.

    Defined at line 241 of file llvm/lib/Analysis/CaptureTracking.cpp

  • KnownBits computeKnownBits (const Value * V, const APInt & DemandedElts, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)

    Returns the known bits rather than passing by reference.

    Defined at line 169 of file llvm/lib/Analysis/ValueTracking.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AddressRanges & AR)

    Defined at line 68 of file llvm/lib/DebugInfo/GSYM/ExtractRanges.cpp

  • void initializeCallBrPreparePass (PassRegistry & )

    Defined at line 100 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • void reportFatalInternalError (StringRef reason)

    Defined at line 143 of file llvm/lib/Support/ErrorHandling.cpp

  • void DecodePSWAPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)

    Decodes a PSWAPD 3DNow! instruction.

    Defined at line 192 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Expected<std::vector<RCToken>> tokenizeRC (StringRef Input, bool IsWindres)

    Tokenize Input.

    In case no error occurred, the return value contains

    tokens in order they were in the input file.

    In case of any error, the return value contains

    a textual representation of error.

    Tokens returned by this function hold only references to the parts

    of the Input. Memory buffer containing Input cannot be freed,

    modified or reallocated.

    Defined at line 399 of file llvm/tools/llvm-rc/ResourceScriptToken.cpp

  • Value * simplifyUDivInst (Value * LHS, Value * RHS, bool IsExact, const SimplifyQuery & Q)

    Given operands for a UDiv, fold the result or return null.

    Defined at line 1233 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • optional getArm64ECDemangledFunctionName (StringRef Name)

    Returns the ARM64EC demangled function name, unless the input is not

    mangled.

    Defined at line 332 of file llvm/lib/IR/Mangler.cpp

  • bool EliminateUnreachableBlocks (Function & F, DomTreeUpdater * DTU, bool KeepOneInputPHIs)

    Delete all basic blocks from

    that are not reachable from its entry

    node. If

    is true, one-input Phis in successors of

    blocks being deleted will be preserved.

    Defined at line 174 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Value * getReallocatedOperand (const CallBase * CB)

    If this is a call to a realloc function, return the reallocated operand.

    Defined at line 324 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • Expected<std::string> getCachedOrDownloadExecutable (ArrayRef ID)

    Fetches an executable by searching the default local cache directory and

    server URLs.

    Defined at line 145 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void initializeCallGraphDOTPrinterPass (PassRegistry & )

    Defined at line 346 of file llvm/lib/Analysis/CallPrinter.cpp

  • void reportFatalInternalError (const Twine & reason)

    Defined at line 146 of file llvm/lib/Support/ErrorHandling.cpp

  • Constant * getPointerAtOffset (Constant * I, uint64_t Offset, Module & M, Constant * TopLevelGlobal)

    Processes a Constant recursively looking into elements of arrays, structs

    and expressions to find a trivial pointer element that is located at the

    given offset (relative to the beginning of the whole outer Constant).

    Used for example from GlobalDCE to find an entry in a C++ vtable that

    matches a vcall offset.

    To support relative vtables, getPointerAtOffset can see through "relative

    pointers", i.e. (sub-)expressions of the form of:

    = ... {

    i32 trunc (i64 sub (

    i64 ptrtoint (

    <type

    >

    to i64), i64 ptrtoint (...

    to i64)

    ) to i32)

    }

    For such (sub-)expressions, getPointerAtOffset returns the

    pointer.

    Defined at line 145 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • bool getUniversalCRTSdkDir (vfs::FileSystem & VFS, optional WinSdkDir, optional WinSdkVersion, optional WinSysRoot, std::string & Path, std::string & UCRTVersion)

    Defined at line 466 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • ModulePass * createModuleSummaryIndexWrapperPass ()

    ===--------------------------------------------------------------------===//

    createModuleSummaryIndexWrapperPass - This pass builds a ModuleSummaryIndex

    object for the module, to be written to bitcode or LLVM assembly.

    Defined at line 1189 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • Constant * ConstantFoldUnaryInstruction (unsigned int Opcode, Constant * V)

    Defined at line 540 of file llvm/lib/IR/ConstantFold.cpp

  • void initializeCallGraphViewerPass (PassRegistry & )

    Defined at line 342 of file llvm/lib/Analysis/CallPrinter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, time_point TP)

    Defined at line 62 of file llvm/lib/Support/Chrono.cpp

  • raw_ostream & operator<< (raw_ostream & OS, int TP)

    Defined at line of file

  • Constant * ConstantFoldInstOperands (const Instruction * I, ArrayRef Ops, const DataLayout & DL, const TargetLibraryInfo * TLI, bool AllowNonDeterministic)

    ConstantFoldInstOperands - Attempt to constant fold an instruction with the

    specified operands. If successful, the constant result is returned, if not,

    null is returned. Note that this function can fail when attempting to

    fold instructions like loads and stores, which have no constant expression

    form.

    In some cases, constant folding may return one value chosen from a set of

    multiple legal return values. For example, the exact bit pattern of NaN

    results is not guaranteed. Using such a result is usually only valid if

    all uses of the original operation are replaced by the constant-folded

    result. The

    parameter controls whether this is

    allowed.

    Defined at line 1190 of file llvm/lib/Analysis/ConstantFolding.cpp

  • basic_string doSystemDiff (StringRef Before, StringRef After, StringRef OldLineFormat, StringRef NewLineFormat, StringRef UnchangedLineFormat)

    Perform a system based diff between

    and

    using

    and

    to control the

    formatting of the output. Return an error message for any failures instead

    of the diff.

    Defined at line 215 of file llvm/lib/IR/PrintPasses.cpp

  • bool isLibFuncEmittable (const Module * M, const TargetLibraryInfo * TLI, LibFunc TheLibFunc)

    Check whether the library function is available on target and also that

    it in the current Module is a Function with the right type.

    Defined at line 1542 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • MachineFunctionPass * createMachineFunctionSplitterPass ()

    createMachineFunctionSplitterPass - This pass splits machine functions

    using profile information.

    Defined at line 227 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp

  • bool hasBranchWeightOrigin (const MDNode * ProfileData)

    Check if Branch Weight Metadata has an "expected" field from an llvm.expect*

    intrinsic

    Defined at line 155 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeCallGraphWrapperPassPass (PassRegistry & )

    Defined at line 315 of file llvm/lib/Analysis/CallGraph.cpp

  • raw_ostream & operator<< (raw_ostream & OS, time_point TP)

    Defined at line of file

  • FunctionPass * createX86OptimizeLEAs ()

    Return a pass that removes redundant LEA instructions and redundant address

    recalculations.

    Defined at line 314 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • Constant * ConstantFoldBinaryInstruction (unsigned int Opcode, Constant * V1, Constant * V2)

    Defined at line 598 of file llvm/lib/IR/ConstantFold.cpp

  • basic_string recomputeLTOCacheKey (const std::string & Key, StringRef ExtraID)

    Recomputes the LTO cache key for a given key with an extra identifier.

    Defined at line 355 of file llvm/lib/LTO/LTO.cpp

  • void DecodeSHUFPMask (unsigned int NumElts, unsigned int ScalarBits, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for shufp*.

    Defined at line 201 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool isPotentiallyReachable (const BasicBlock * From, const BasicBlock * To, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)

    Determine whether block 'To' is reachable from 'From', returning

    true if uncertain.

    Determine whether there is a path from From to To within a single function.

    Returns false only if we can prove that once 'From' has been reached then

    'To' can not be executed. Conservatively returns true.

    Defined at line 258 of file llvm/lib/Analysis/CFG.cpp

  • basic_string getDebuginfodDebuginfoUrlPath (ArrayRef ID)

    Get the full URL path for a debug binary request of a given BuildID.

    Defined at line 150 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • MDNode * UpgradeTBAANode (MDNode & TBAANode)

    If the given TBAA tag uses the scalar TBAA format, create a new node

    corresponding to the upgrade to the struct-path aware TBAA format.

    Otherwise return the

    itself.

    Defined at line 5568 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeCheckDebugMachineModulePass (PassRegistry & )

    Defined at line 123 of file llvm/lib/CodeGen/MachineCheckDebugify.cpp

  • Value * simplifySRemInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for an SRem, fold the result or return null.

    Defined at line 1255 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int createWinCOFFObjectWriter (int MOTW, raw_pwrite_stream & OS)

    Construct a new Win COFF writer instance.

    Parameters

    MOTW - The target specific WinCOFF writer subclass.
    OS - The stream to write to.

    Defined at line of file

  • unique_ptr createWinCOFFObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)

    Construct a new Win COFF writer instance.

    Parameters

    MOTW - The target specific WinCOFF writer subclass.
    OS - The stream to write to.

    Defined at line 1239 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • bool wouldInstructionBeTriviallyDead (const Instruction * I, const TargetLibraryInfo * TLI)

    Return true if the result produced by the instruction would have no side

    effects if it was not used. This is equivalent to checking whether

    isInstructionTriviallyDead would be true if the use count was 0.

    Defined at line 421 of file llvm/lib/Transforms/Utils/Local.cpp

  • Error handleSection (const StringMap<std::pair<MCSection *, DWARFSectionKind>> & KnownSections, const MCSection * StrSection, const MCSection * StrOffsetSection, const MCSection * TypesSection, const MCSection * CUIndexSection, const MCSection * TUIndexSection, const MCSection * InfoSection, const object::SectionRef & Section, MCStreamer & Out, std::deque<SmallString<32>> & UncompressedSections, uint32_t (&)[8] ContributionOffsets, UnitIndexEntry & CurEntry, StringRef & CurStrSection, StringRef & CurStrOffsetSection, std::vector<StringRef> & CurTypesSection, std::vector<StringRef> & CurInfoSection, StringRef & AbbrevSection, StringRef & CurCUIndexSection, StringRef & CurTUIndexSection, SectionLengths & SectionLength)

    Defined at line 608 of file llvm/lib/DWP/DWP.cpp

  • void initializeCodeGenPrepareLegacyPassPass (PassRegistry & )

    Defined at line 541 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • ScheduleDAGSDNodes * createILPListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel )

    createILPListDAGScheduler - This creates a bottom up register pressure

    aware list scheduler that tries to increase instruction level parallelism

    in low register pressure mode. In high register pressure mode it schedules

    to reduce register pressure.

    Defined at line 3188 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • BasicBlock * splitBB (IRBuilderBase & Builder, bool CreateBranch, Twine Name)

    Split a BasicBlock at

    insertion point, even if the block is

    degenerate (missing the terminator). Its new insert location will stick to

    after the instruction before the insertion point (instead of moving with the

    instruction the InsertPoint stores internally).

    Defined at line 364 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Constant * ConstantFoldCompareInstruction (Predicate Predicate, Constant * C1, Constant * C2)

    Defined at line 1096 of file llvm/lib/IR/ConstantFold.cpp

  • bool isLibFuncEmittable (const Module * M, const TargetLibraryInfo * TLI, StringRef Name)

    Defined at line 1559 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • PHINode * createWideIV (const WideIVInfo & WI, LoopInfo * LI, ScalarEvolution * SE, SCEVExpander & Rewriter, DominatorTree * DT, SmallVectorImpl<WeakTrackingVH> & DeadInsts, unsigned int & NumElimExt, unsigned int & NumWidened, bool HasGuards, bool UsePostIncrementRanges)

    Widen Induction Variables - Extend the width of an IV to cover its

    widest uses.

    Defined at line 2282 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • error_code identify_magic (const Twine & path, file_magic & result)

    Get and identify

    type based on its content.

    Parameters

    path Input path.
    result Set to the type of file, or file_magic::unknown.

    Defined at line 281 of file llvm/lib/BinaryFormat/Magic.cpp

  • bool stripNonLineTableDebugInfo (Module & M)

    Downgrade the debug info in a module to contain only line table information.

    In order to convert debug info to what -gline-tables-only would have

    created, this does the following:

    1) Delete all debug intrinsics.

    2) Delete all non-CU named metadata debug info nodes.

    3) Create new DebugLocs for each instruction.

    4) Create a new CU debug info, and similarly for every metadata node

    that's reachable from the CU debug info.

    All debug type metadata nodes are unreachable and garbage collected.

    Defined at line 852 of file llvm/lib/IR/DebugInfo.cpp

  • unsigned int getBranchWeightOffset (const MDNode * ProfileData)

    Return the offset to the first branch weight data

    Defined at line 167 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeComplexDeinterleavingLegacyPassPass (PassRegistry & )

    Defined at line 531 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • ModulePass * createGlobalDCEPass ()

    Public interface to the GlobalDCEPass.

    Defined at line 62 of file llvm/lib/Transforms/IPO/GlobalDCE.cpp

  • FunctionPass * createPromoteMemoryToRegisterPass ()

    createPromoteMemoryToRegister - Provide an entry point to create this pass.

    Defined at line 114 of file llvm/lib/Transforms/Utils/Mem2Reg.cpp

  • FunctionPass * createX86FixupSetCC ()

    Return a pass that transforms setcc + movzx pairs into xor + setcc.

    Defined at line 65 of file llvm/lib/Target/X86/X86FixupSetCC.cpp

  • bool pruneCache (StringRef Path, CachePruningPolicy Policy, const std::vector<std::unique_ptr<MemoryBuffer>> & Files)

    Peform pruning using the supplied policy, returns true if pruning

    occurred, i.e. if Policy.Interval was expired.

    Check whether cache pruning happens using the supplied policy, adds a

    ThinLTO warning if cache_size_bytes or cache_size_files is too small for the

    current link job. The warning recommends the user to consider adjusting

    --thinlto-cache-policy.

    As a safeguard against data loss if the user specifies the wrong directory

    as their cache directory, this function will ignore files not matching the

    pattern "llvmcache-*".

    Defined at line 145 of file llvm/lib/Support/CachePruning.cpp

  • bool pruneCache (StringRef Path, CachePruningPolicy Policy, const int & Files)

    Peform pruning using the supplied policy, returns true if pruning

    occurred, i.e. if Policy.Interval was expired.

    Check whether cache pruning happens using the supplied policy, adds a

    ThinLTO warning if cache_size_bytes or cache_size_files is too small for the

    current link job. The warning recommends the user to consider adjusting

    --thinlto-cache-policy.

    As a safeguard against data loss if the user specifies the wrong directory

    as their cache directory, this function will ignore files not matching the

    pattern "llvmcache-*".

    Defined at line of file

  • MachineFunctionPass * createStaticDataSplitterPass ()

    createStaticDataSplitterPass - This is a machine-function pass that

    categorizes static data hotness using profile information.

    Defined at line 269 of file llvm/lib/CodeGen/StaticDataSplitter.cpp

  • void initializeConstantHoistingLegacyPassPass (PassRegistry & )

    Defined at line 132 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp

  • KnownBits computeKnownBits (const Value * V, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Determine which bits of V are known to be either zero or one and return

    them.

    Defined at line 2372 of file llvm/lib/Analysis/ValueTracking.cpp

  • FunctionHashInfo StructuralHashWithDifferences (const Function & F, IgnoreOperandFunc IgnoreOp)

    Computes a structural hash of a given function, considering the structure

    and content of the function's instructions while allowing for selective

    ignoring of certain operands based on custom criteria. This hash can be used

    to identify functions that are structurally similar or identical, which is

    useful in optimizations, deduplication, or analysis tasks.

    Parameters

    F The function to hash.
    IgnoreOp A callable that takes an instruction and an operand index, and returns true if the operand should be ignored in the hash computation.

    Returns

    A FunctionHashInfo structure

    Defined at line 345 of file llvm/lib/IR/StructuralHash.cpp

  • void DecodeUNPCKHMask (unsigned int NumElts, unsigned int ScalarBits, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.

    Defined at line 218 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool isDereferenceableAndAlignedInLoop (LoadInst * LI, Loop * L, ScalarEvolution & SE, DominatorTree & DT, AssumptionCache * AC, SmallVectorImpl<const SCEVPredicate *> * Predicates)

    Return true if we can prove that the given load (which is assumed to be

    within the specified loop) would access only dereferenceable memory, and

    be properly aligned on every iteration of the specified loop regardless of

    its placement within the loop. (i.e. does not require predication beyond

    that required by the header itself and could be hoisted into the header

    if desired.) This is more powerful than the variants above when the

    address loaded from is analyzeable by SCEV.

    Defined at line 289 of file llvm/lib/Analysis/Loads.cpp

  • Constant * ConstantFoldGetElementPtr (Type * Ty, Constant * C, optional InRange, ArrayRef Idxs)

    Defined at line 1310 of file llvm/lib/IR/ConstantFold.cpp

  • LoopUnrollResult UnrollLoop (Loop * L, UnrollLoopOptions ULO, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const llvm::TargetTransformInfo * TTI, OptimizationRemarkEmitter * ORE, bool PreserveLCSSA, Loop ** RemainderLoop, AAResults * AA)

    Unroll the given loop by Count. The loop must be in LCSSA form. Unrolling

    can only fail when the loop's latch block is not terminated by a conditional

    branch instruction. However, if the trip count (and multiple) are not known,

    loop unrolling will mostly produce more code that is no faster.

    If Runtime is true then UnrollLoop will try to insert a prologue or

    epilogue that ensures the latch has a trip multiple of Count. UnrollLoop

    will not runtime-unroll the loop if computing the run-time trip count will

    be expensive and AllowExpensiveTripCount is false.

    The LoopInfo Analysis that is passed will be kept consistent.

    This utility preserves LoopInfo. It will also preserve ScalarEvolution and

    DominatorTree if they are non-null.

    If RemainderLoop is non-null, it will receive the remainder loop (if

    required and not fully unrolled).

    Defined at line 458 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • bool isLibFreeFunction (const Function * F, const LibFunc TLIFn)

    isLibFreeFunction - Returns true if the function is a builtin free()

    Defined at line 529 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • Expected<std::string> getCachedOrDownloadDebuginfo (ArrayRef ID)

    Fetches a debug binary by searching the default local cache directory and

    server URLs.

    Defined at line 157 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • unsigned int getNumBranchWeights (const MDNode & ProfileData)

    Defined at line 171 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeCycleInfoWrapperPassPass (PassRegistry & )

    Defined at line 59 of file llvm/lib/Analysis/CycleAnalysis.cpp

  • Value * simplifyURemInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for a URem, fold the result or return null.

    Defined at line 1266 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • std::pair<Function *, Constant *> getFunctionAtVTableOffset (GlobalVariable * GV, uint64_t Offset, Module & M)

    Given a vtable and a specified offset, returns the function and the trivial

    pointer at the specified offset in pair iff the pointer at the specified

    offset is a function or an alias to a function. Returns a pair of nullptr

    otherwise.

    Defined at line 223 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • Instruction * UpgradeBitCastInst (unsigned int Opc, Value * V, Type * DestTy, Instruction *& Temp)

    This is an auto-upgrade for bitcast between pointers with different

    address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.

    Defined at line 5594 of file llvm/lib/IR/AutoUpgrade.cpp

  • unique_ptr createWinCOFFDwoObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS, raw_pwrite_stream & DwoOS)

    Defined at line 1244 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • int createWinCOFFDwoObjectWriter (int MOTW, raw_pwrite_stream & OS, raw_pwrite_stream & DwoOS)

    Defined at line of file

  • bool FoldSingleEntryPHINodes (BasicBlock * BB, MemoryDependenceResults * MemDep)

    We know that BB has one predecessor. If there are any single-entry PHI nodes

    in it, fold them away. This handles the case when all entries to the PHI

    nodes in a block are guaranteed equal, such as when the block has exactly

    one predecessor.

    Defined at line 194 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void initializeDAEPass (PassRegistry & )

    Defined at line 94 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • FunctionPass * createX86AvoidStoreForwardingBlocks ()

    Return a pass that avoids creating store forward block issues in the hardware.

    Defined at line 128 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • bool EliminateNewDuplicatePHINodes (BasicBlock * BB, phi_iterator_impl FirstExistingPN)

    Defined at line 272 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • MCStreamer * createAsmStreamer (MCContext & Ctx, int OS, int InstPrint, int CE, int TAB)

    Create a machine code streamer which will print out assembly for the native

    target, suitable for compiling with a native assembler.

    Parameters

    InstPrint - If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.
    CE - If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of
    TAB - If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of
    ShowInst - Whether to show the MCInst representation inline with the assembly.

    Defined at line of file

  • MCStreamer * createAsmStreamer (MCContext & Ctx, std::unique_ptr<formatted_raw_ostream> OS, std::unique_ptr<MCInstPrinter> InstPrint, std::unique_ptr<MCCodeEmitter> CE, std::unique_ptr<MCAsmBackend> TAB)

    Create a machine code streamer which will print out assembly for the native

    target, suitable for compiling with a native assembler.

    Parameters

    InstPrint - If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.
    CE - If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of
    TAB - If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of
    ShowInst - Whether to show the MCInst representation inline with the assembly.

    Defined at line 2667 of file llvm/lib/MC/MCAsmStreamer.cpp

  • bool formLCSSAForInstructions (SmallVectorImpl<Instruction *> & Worklist, const DominatorTree & DT, const LoopInfo & LI, ScalarEvolution * SE, SmallVectorImpl<PHINode *> * PHIsToRemove, SmallVectorImpl<PHINode *> * InsertedPHIs)

    Ensures LCSSA form for every instruction from the Worklist in the scope of

    innermost containing loop.

    For the given instruction which have uses outside of the loop, an LCSSA PHI

    node is inserted and the uses outside the loop are rewritten to use this

    node.

    LoopInfo and DominatorTree are required and, since the routine makes no

    changes to CFG, preserved.

    Returns true if any modifications are made.

    This function may introduce unused PHI nodes. If

    is not

    nullptr, those are added to it (before removing, the caller has to check if

    they still do not have any uses). Otherwise the PHIs are directly removed.

    If

    is not nullptr, inserted phis will be added to this

    vector.

    Defined at line 308 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • bool findVCToolChainViaCommandLine (vfs::FileSystem & VFS, optional VCToolsDir, optional VCToolsVersion, optional WinSysRoot, std::string & Path, ToolsetLayout & VSLayout)

    Check command line arguments to try and find a toolchain.

    Defined at line 497 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • void calculateWasmEHInfo (const Function * F, WasmEHFuncInfo & EHInfo)

    Analyze the IR in the given function to build WasmEHFuncInfo.

    Defined at line 386 of file llvm/lib/CodeGen/WasmEHPrepare.cpp

  • void initializeDAHPass (PassRegistry & )

    Defined at line 112 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • FunctionPass * createReassociatePass ()

    Public interface to the Reassociate pass

    Defined at line 2664 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • ScheduleDAGSDNodes * createFastDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)

    createFastDAGScheduler - This creates a "fast" scheduler.

    Defined at line 798 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp

  • Constant * ConstantFoldCompareInstOperands (unsigned int Predicate, Constant * LHS, Constant * RHS, const DataLayout & DL, const TargetLibraryInfo * TLI, const Instruction * I)

    Attempt to constant fold a compare instruction (icmp/fcmp) with the

    specified operands. Returns null or a constant expression of the specified

    operands on failure.

    Denormal inputs may be flushed based on the denormal handling mode.

    Defined at line 1199 of file llvm/lib/Analysis/ConstantFolding.cpp

  • std::pair<Function *, FunctionCallee> getOrCreateSanitizerCtorAndInitFunctions (Module & M, StringRef CtorName, StringRef InitName, ArrayRef InitArgTypes, ArrayRef<Value *> InitArgs, function_ref<void (Function *, FunctionCallee)> FunctionsCreatedCallback, StringRef VersionCheckName, bool Weak)

    Creates sanitizer constructor function lazily. If a constructor and init

    function already exist, this function returns it. Otherwise it calls

    The FunctionsCreatedCallback is invoked

    in that case, passing the new Ctor and Init function.

    Returns

    Returns pair of pointers to constructor, and init functions

    respectively.

    Defined at line 301 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void initializeDCELegacyPassPass (PassRegistry & )

    Defined at line 143 of file llvm/lib/Transforms/Scalar/DCE.cpp

  • Value * getFreedOperand (const CallBase * CB, const TargetLibraryInfo * TLI)

    If this if a call to a free function, return the freed operand.

    Defined at line 548 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • raw_ostream & operator<< (raw_ostream & OS, OutputConfig Config)

    Defined at line 52 of file llvm/lib/Support/VirtualOutputConfig.cpp

  • void DecodeUNPCKLMask (unsigned int NumElts, unsigned int ScalarBits, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.

    Defined at line 234 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • std::unique_ptr<MIRParser> createMIRParserFromFile (StringRef Filename, SMDiagnostic & Error, LLVMContext & Context, function ProcessIRFunction)

    This function is the main interface to the MIR serialization format parser.

    It reads in a MIR file and returns a MIR parser that can parse the embedded

    LLVM IR module and initialize the machine functions by parsing the machine

    function's state.

    Parameters

    Filename - The name of the file to parse.
    Error - Error result info.
    Context - Context which will be used for the parsed LLVM IR module.
    ProcessIRFunction - function to run on every IR function or stub loaded from the MIR file.

    Defined at line 1270 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp

  • bool hasFloatFn (const Module * M, const TargetLibraryInfo * TLI, Type * Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn)

    Check whether the overloaded floating point function

    corresponding to

    is available.

    Defined at line 1566 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • ParsedModuleAndIndex parseAssemblyFileWithIndex (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback)

    This function is a main interface to the LLVM Assembly Parser. It parses

    an ASCII file that (presumably) contains LLVM Assembly code, including

    a module summary. It returns a Module (intermediate representation) and

    a ModuleSummaryIndex with the corresponding features. Note that this does

    not verify that the generated Module or Index are valid, so you should

    run the verifier after parsing the file to check that they are okay.

    Parse LLVM Assembly from a file

    Parameters

    Filename The name of the file to parse
    Err Error result info.
    Context Context in which to allocate globals info.
    Slots The optional slot mapping that will be initialized during parsing.
    DataLayoutCallback Override datalayout in the llvm assembly.

    Defined at line 124 of file llvm/lib/AsmParser/Parser.cpp

  • bool checkDebugInfoMetadata (Module & M, iterator_range Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass, StringRef OrigDIVerifyBugsReportFilePath)

    Check original debug information after a pass.

    Parameters

    M The module to collect debug information from.
    Functions A range of functions to collect debug information from.
    DebugInfoBeforePass DI metadata before a pass.
    Banner A prefix string to add to debug/error messages.
    NameOfWrappedPass A name of a pass to add to debug/error messages.

    Defined at line 611 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • bool checkDebugInfoMetadata (Module & M, int Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass, StringRef OrigDIVerifyBugsReportFilePath)

    Check original debug information after a pass.

    Parameters

    M The module to collect debug information from.
    Functions A range of functions to collect debug information from.
    DebugInfoBeforePass DI metadata before a pass.
    Banner A prefix string to add to debug/error messages.
    NameOfWrappedPass A name of a pass to add to debug/error messages.

    Defined at line of file

  • ModulePass * createStaticDataAnnotatorPass ()

    createStaticDataAnnotatorPASS - This is a module pass that reads from

    StaticDataProfileInfoWrapperPass and annotates the section prefix of

    global variables.

    Defined at line 94 of file llvm/lib/CodeGen/StaticDataAnnotator.cpp

  • bool verifyFunction (const Function & F, raw_ostream * OS)

    Check a function for errors, useful for use when debugging a

    pass.

    If there are no errors, the function returns false. If an error is found,

    a message describing the error is written to OS (if non-null) and true is

    returned.

    Defined at line 7710 of file llvm/lib/IR/Verifier.cpp

  • void initializeDSELegacyPassPass (PassRegistry & )

    Defined at line 2734 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • FunctionPass * createX86FlagsCopyLoweringPass ()

    Return a pass that lowers EFLAGS copy pseudo instructions.

    Defined at line 123 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • Value * simplifyFNegInst (Value * Op, FastMathFlags FMF, const SimplifyQuery & Q)

    Given operand for an FNeg, fold the result or return null.

    Defined at line 5736 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Expected<std::string> getCachedOrDownloadArtifact (StringRef UniqueKey, StringRef UrlPath)

    Fetches any debuginfod artifact using the default local cache directory and

    server URLs.

    Defined at line 163 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • BasicBlock * splitBB (int & Builder, bool CreateBranch, Twine Name)

    Split a BasicBlock at

    insertion point, even if the block is

    degenerate (missing the terminator). Its new insert location will stick to

    after the instruction before the insertion point (instead of moving with the

    instruction the InsertPoint stores internally).

    Defined at line 378 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • BasicBlock * splitBB (IRBuilder<> & Builder, bool CreateBranch, Twine Name)

    Split a BasicBlock at

    insertion point, even if the block is

    degenerate (missing the terminator). Its new insert location will stick to

    after the instruction before the insertion point (instead of moving with the

    instruction the InsertPoint stores internally).

    Defined at line of file

  • void updateLoopMetadataDebugLocations (Instruction & I, function_ref<Metadata *(Metadata *)> Updater)

    Update the debug locations contained within the MD_loop metadata attached

    to the instruction

    if one exists.

    is applied to Metadata

    operand in the MD_loop metadata: the returned value is included in the

    updated loop metadata node if it is non-null.

    Defined at line 448 of file llvm/lib/IR/DebugInfo.cpp

  • void computeValueLLTs (const DataLayout & DL, Type & Ty, SmallVectorImpl<LLT> & ValueTys, SmallVectorImpl<uint64_t> * Offsets, uint64_t StartingOffset)

    computeValueLLTs - Given an LLVM IR type, compute a sequence of

    LLTs that represent all the individual underlying

    non-aggregate types that comprise it.

    If Offsets is non-null, it points to a vector to be filled in

    with the in-memory offsets of each of the individual values.

    Defined at line 149 of file llvm/lib/CodeGen/Analysis.cpp

  • Error writeMemProf (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, IndexedVersion MemProfVersionRequested, bool MemProfFullSchema, int DataAccessProfileData, int MemProfSum)

    Write the MemProf data to OS.

    Defined at line of file

  • Error writeMemProf (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, IndexedVersion MemProfVersionRequested, bool MemProfFullSchema, unique_ptr DataAccessProfileData, unique_ptr MemProfSum)

    Write out the MemProf data in a requested version.

    Defined at line 313 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • ImmutablePass * createScopedNoAliasAAWrapperPass ()

    ===--------------------------------------------------------------------===//

    createScopedNoAliasAAWrapperPass - This pass implements metadata-based

    scoped noalias analysis.

    Defined at line 169 of file llvm/lib/Analysis/ScopedNoAliasAA.cpp

  • void replaceRelativePointerUsersWithZero (Constant * C)

    Finds the same "relative pointer" pattern as described above, where the

    target is `C`, and replaces the entire pattern with a constant zero.

    Defined at line 258 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • void initializeDXILMetadataAnalysisWrapperPassPass (PassRegistry & )

    Defined at line 158 of file llvm/lib/Analysis/DXILMetadataAnalysis.cpp

  • const char * to_string (ThinOrFullLTOPhase Phase)

    Defined at line 301 of file llvm/lib/IR/Pass.cpp

  • void fillMapFromAssume (AssumeInst & Assume, RetainedKnowledgeMap & Result)

    Insert into the map all the informations contained in the operand bundles of

    the llvm.assume. This should be used instead of hasAttributeInAssume when

    many queries are going to be made on the same llvm.assume.

    String attributes are not inserted in the map.

    If the IR changes the map will be outdated.

    Defined at line 70 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • void fillMapFromAssume (AssumeInst & Assume, int & Result)

    Insert into the map all the informations contained in the operand bundles of

    the llvm.assume. This should be used instead of hasAttributeInAssume when

    many queries are going to be made on the same llvm.assume.

    String attributes are not inserted in the map.

    If the IR changes the map will be outdated.

    Defined at line of file

  • void computeKnownBits (const Value * V, KnownBits & Known, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 141 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool wouldInstructionBeTriviallyDeadOnUnusedPaths (Instruction * I, const TargetLibraryInfo * TLI)

    Return true if the result produced by the instruction has no side effects on

    any paths other than where it is used. This is less conservative than

    wouldInstructionBeTriviallyDead which is based on the assumption

    that the use count will be 0. An example usage of this API is for

    identifying instructions that can be sunk down to use(s).

    Defined at line 409 of file llvm/lib/Transforms/Utils/Local.cpp

  • void initializeDXILMetadataAnalysisWrapperPrinterPass (PassRegistry & )

    Defined at line of file

  • FunctionPass * createInstructionCombiningPass ()

    ===----------------------------------------------------------------------===//

    InstructionCombining - Combine instructions to form fewer, simple

    instructions. This pass does not modify the CFG, and has a tendency to make

    instructions dead, so a subsequent DCE pass is useful.

    This pass combines things like:

    %Y = add int 1, %X

    %Z = add int 1, %Y

    into:

    %Z = add int 2, %X

    Defined at line 6173 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • FunctionPass * createRegToMemWrapperPass ()

    ===----------------------------------------------------------------------===//

    RegToMemWrapperPass - This pass is used to demote registers to memory

    references. In basically undoes the PromoteMemoryToRegister pass to make cfg

    hacking easier.

    Defined at line 146 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp

  • Constant * getPredForFCmpCode (unsigned int Code, Type * OpTy, CmpInst::Predicate & Pred)

    This is the complement of getFCmpCode. It turns a predicate code into

    either a constant true or false or the predicate for a new FCmp.

    Non-NULL return value will be a true or false constant.

    NULL return means a new ICmp is needed. The predicate is output in Pred.

    Defined at line 64 of file llvm/lib/Analysis/CmpInstAnalysis.cpp

  • Constant * UpgradeBitCastExpr (unsigned int Opc, Constant * C, Type * DestTy)

    This is an auto-upgrade for bitcast constant expression between pointers

    with different address spaces: the instruction is replaced by a pair

    ptrtoint+inttoptr.

    Defined at line 5616 of file llvm/lib/IR/AutoUpgrade.cpp

  • void emitSourceFileHeader (StringRef Desc, raw_ostream & OS, const RecordKeeper & Record)

    emitSourceFileHeader - Output an LLVM style file header to the specified

    raw_ostream.

    Defined at line 93 of file llvm/lib/TableGen/TableGenBackend.cpp

  • CaptureComponents PointerMayBeCapturedBefore (const Value * V, bool ReturnCaptures, const Instruction * I, const DominatorTree * DT, bool IncludeI, CaptureComponents Mask, function_ref StopFn, const LoopInfo * LI, unsigned int MaxUsesToExplore)

    Return which components of the pointer may be captured on the path to

    Only consider components that are part of

    Once

    on the accumulated components returns true, the traversal is aborted

    early. By default, this happens when *any* of the components in

    are captured.

    This function only considers captures of the passed value via its def-use

    chain, without considering captures of values it may be based on, or

    implicit captures such as for external globals.

    Defined at line 220 of file llvm/lib/Analysis/CaptureTracking.cpp

  • bool isReadOnlyLoop (Loop * L, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, SmallVectorImpl<LoadInst *> & NonDereferenceableAndAlignedLoads, SmallVectorImpl<const SCEVPredicate *> * Predicates)

    Returns true if the loop contains read-only memory accesses and doesn't

    throw. Puts loads that may fault into

    Defined at line 875 of file llvm/lib/Analysis/Loads.cpp

  • void initializeDXILResourceBindingWrapperPassPass (PassRegistry & )

    Defined at line 1202 of file llvm/lib/Analysis/DXILResource.cpp

  • bool operator== (const DbgValueLocEntry & , const DbgValueLocEntry & )

    Compare two DbgValueLocEntries for equality.

    Defined at line 254 of file llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h

  • void DecodeVectorBroadcast (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)

    Decodes a broadcast of the first element of a vector.

    Defined at line 250 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • const X86InstrFMA3Group * getFMA3Group (unsigned int Opcode, uint64_t TSFlags)

    Returns a reference to a group of FMA3 opcodes to where the given

    is included. If the given

    is not recognized as FMA3

    and not included into any FMA3 group, then nullptr is returned.

    Defined at line 155 of file llvm/lib/Target/X86/X86InstrFMA3Info.cpp

  • AntiDepBreaker * createAggressiveAntiDepBreaker (MachineFunction & MFi, const RegisterClassInfo & RCI, TargetSubtargetInfo::RegClassVector & CriticalPathRCs)

    Defined at line 967 of file llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp

  • MCStreamer * createELFStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)

    Defined at line of file

  • MCStreamer * createELFStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)

    Defined at line 584 of file llvm/lib/MC/MCELFStreamer.cpp

  • void initializeDXILResourceTypeWrapperPassPass (PassRegistry & )

    Defined at line 1131 of file llvm/lib/Analysis/DXILResource.cpp

  • CGPassBuilderOption getCGPassBuilderOption ()

    Defined at line 493 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • Constant * ConstantFoldUnaryOpOperand (unsigned int Opcode, Constant * Op, const DataLayout & DL)

    Attempt to constant fold a unary operation with the specified operand.

    Returns null on failure.

    Defined at line 1313 of file llvm/lib/Analysis/ConstantFolding.cpp

  • ScheduleDAGSDNodes * createVLIWDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)

    createVLIWDAGScheduler - Scheduler for VLIW targets. This creates top down

    DFA driven list scheduler with clustering heuristic to control

    register pressure.

    Defined at line 264 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp

  • bool extractBranchWeights (const MDNode * ProfileData, SmallVectorImpl<uint32_t> & Weights)

    Extract branch weights from MD_prof metadata

    Parameters

    ProfileData A pointer to an MDNode.
    Weights [out] An output vector to fill with branch weights

    Defined at line 199 of file llvm/lib/IR/ProfDataUtils.cpp

  • MachineFunctionPass * createMachineFunctionPrinterPass (raw_ostream & OS, const std::string & Banner)

    MachineFunctionPrinter pass - This pass prints out the machine function to

    the given stream as a debugging tool.

    Defined at line 66 of file llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp

  • BasicBlock * splitBBWithSuffix (IRBuilderBase & Builder, bool CreateBranch, Twine Suffix)

    Like splitBB, but reuses the current block's name for the new name.

    Defined at line 392 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool DeleteDeadPHIs (BasicBlock * BB, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU)

    Examine each PHI in the given block and delete it if it is dead. Also

    recursively delete any operands that become dead as a result. This includes

    tracing the def-use list from the PHI to see if it is ultimately unused or

    if it reaches an unused cycle. Return true if any PHIs were deleted.

    Defined at line 213 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool shouldOptimizeForSize (const Function * F, ProfileSummaryInfo * PSI, BlockFrequencyInfo * BFI, PGSOQueryType QueryType)

    Returns true if function

    is suggested to be size-optimized based on the

    profile.

    Defined at line 99 of file llvm/lib/Transforms/Utils/SizeOpts.cpp

  • Value * simplifyFAddInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FAdd, fold the result or return null.

    Defined at line 6022 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool UnrollRuntimeLoopRemainder (Loop * L, unsigned int Count, bool AllowExpensiveTripCount, bool UseEpilogRemainder, bool UnrollRemainder, bool ForgetAllSCEV, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const TargetTransformInfo * TTI, bool PreserveLCSSA, unsigned int SCEVExpansionBudget, bool RuntimeUnrollMultiExit, Loop ** ResultLoop, optional OriginalTripCount, BranchProbability OriginalLoopProb)

    Insert code in the prolog/epilog code when unrolling a loop with a

    run-time trip-count.

    This method assumes that the loop unroll factor is total number

    of loop bodies in the loop after unrolling. (Some folks refer

    to the unroll factor as the number of *extra* copies added).

    We assume also that the loop unroll factor is a power-of-two. So, after

    unrolling the loop, the number of loop bodies executed is 2,

    4, 8, etc. Note - LLVM converts the if-then-sequence to a switch

    instruction in SimplifyCFG.cpp. Then, the backend decides how code for

    the switch instruction is generated.

    ***Prolog case***

    extraiters = tripcount % loopfactor

    if (extraiters == 0) jump Loop:

    else jump Prol:

    Prol: LoopBody;

    extraiters -= 1 // Omitted if unroll factor is 2.

    if (extraiters != 0) jump Prol: // Omitted if unroll factor is 2.

    if (tripcount

    <

    loopfactor) jump End:

    Loop:

    ...

    End:

    ***Epilog case***

    extraiters = tripcount % loopfactor

    if (tripcount

    <

    loopfactor) jump LoopExit:

    unroll_iters = tripcount - extraiters

    Loop: LoopBody; (executes unroll_iter times);

    unroll_iter -= 1

    if (unroll_iter != 0) jump Loop:

    LoopExit:

    if (extraiters == 0) jump EpilExit:

    Epil: LoopBody; (executes extraiters times)

    extraiters -= 1 // Omitted if unroll factor is 2.

    if (extraiters != 0) jump Epil: // Omitted if unroll factor is 2.

    EpilExit:

    Defined at line 654 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • unsigned int getDebugMetadataVersionFromModule (const Module & M)

    Return Debug Info Metadata Version by checking module flags.

    Defined at line 938 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeDXILResourceWrapperPassPass (PassRegistry & )

    Defined at line 1172 of file llvm/lib/Analysis/DXILResource.cpp

  • void reportFatalUsageError (const char * reason)

    Report a fatal error that does not indicate a bug in LLVM.

    This can be used in contexts where a proper error reporting mechanism

    (such as Error/Expected or DiagnosticInfo) is currently not supported, and

    would be too involved to introduce at the moment.

    Examples where this function should be used instead of

    reportFatalInternalError() include invalid inputs or options, but also

    environment error conditions outside LLVM's control. It should also be used

    for known unsupported/unimplemented functionality.

    This will call installed error handlers (or print the message by default)

    and then exit with code 1. It will not produce a crash trace and will

    *not* ask users to report an LLVM bug.

    Defined at line 149 of file llvm/lib/Support/ErrorHandling.cpp

  • SmallVector<VPRegisterUsage, 8> calculateRegisterUsageForPlan (VPlan & Plan, ArrayRef<ElementCount> VFs, const TargetTransformInfo & TTI, const SmallPtrSetImpl<const Value *> & ValuesToIgnore)

    Estimate the register usage for

    and vectorization factors in

    by calculating the highest number of values that are live at a single

    location as a rough estimate. Returns the register usage for each VF in

    Defined at line 409 of file llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp

  • FunctionPass * createCFGSimplificationPass (SimplifyCFGOptions Options, function Ftor)

    Public interface to the CFGSimplification pass

    Defined at line 439 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • StringRef getFloatFn (const Module * M, const TargetLibraryInfo * TLI, Type * Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, LibFunc & TheLibFunc)

    Get the name of the overloaded floating point function

    corresponding to

    Return the LibFunc in

    Defined at line 1580 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool findVCToolChainViaEnvironment (vfs::FileSystem & VFS, std::string & Path, ToolsetLayout & VSLayout)

    Check various environment variables to try and find a toolchain.

    Defined at line 524 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • bool isPotentiallyReachableFromMany (SmallVectorImpl<BasicBlock *> & Worklist, const BasicBlock * StopBB, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)

    Determine whether there is at least one path from a block in

    'Worklist' to 'StopBB' without passing through any blocks in

    'ExclusionSet', returning true if uncertain.

    Determine whether there is a path from at least one block in Worklist to

    StopBB within a single function without passing through any of the blocks

    in 'ExclusionSet'. Returns false only if we can prove that once any block

    in 'Worklist' has been reached then 'StopBB' can not be executed.

    Conservatively returns true.

    Defined at line 240 of file llvm/lib/Analysis/CFG.cpp

  • GlobalValue * ExtractTypeInfo (Value * V)

    ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.

    Defined at line 185 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeDeadMachineInstructionElimPass (PassRegistry & )

    Defined at line 78 of file llvm/lib/CodeGen/DeadMachineInstructionElim.cpp

  • void reportFatalUsageError (StringRef reason)

    Defined at line 152 of file llvm/lib/Support/ErrorHandling.cpp

  • Expected<InfoSectionUnitHeader> parseInfoSectionUnitHeader (StringRef Info)

    Parse and return the header of an info section compile/type unit.

    Defined at line 356 of file llvm/lib/DWP/DWP.cpp

  • void DecodeSubVectorBroadcast (unsigned int DstNumElts, unsigned int SrcNumElts, SmallVectorImpl<int> & ShuffleMask)

    Decodes a broadcast of a subvector to a larger vector type.

    Defined at line 255 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Expected<std::string> getCachedOrDownloadArtifact (StringRef UniqueKey, StringRef UrlPath, StringRef CacheDirectoryPath, ArrayRef DebuginfodUrls, duration Timeout)

    Fetches any debuginfod artifact using the specified local cache directory,

    server URLs, and request timeout (in milliseconds). If the artifact is

    found, uses the UniqueKey for the local cache file.

    Defined at line 261 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • Register constrainRegToClass (MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const RegisterBankInfo & RBI, Register Reg, const TargetRegisterClass & RegClass)

    Try to constrain Reg to the specified register class. If this fails,

    create a new virtual register in the correct class.

    Returns

    The virtual register constrained to the right register class.

    Defined at line 46 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool UpgradeDebugInfo (Module & M)

    Check the debug info version number, if it is out-dated, drop the debug

    info. Return true if module is modified.

    Defined at line 5638 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeDebugifyMachineModulePass (PassRegistry & )

    Defined at line 205 of file llvm/lib/CodeGen/MachineDebugify.cpp

  • void reportFatalUsageError (const Twine & reason)

    Defined at line 155 of file llvm/lib/Support/ErrorHandling.cpp

  • bool nameUnamedGlobals (Module & M)

    Rename all the anon globals in the module

    Defined at line 64 of file llvm/lib/Transforms/Utils/NameAnonGlobals.cpp

  • void computeKnownBitsFromRangeMetadata (const MDNode & Ranges, KnownBits & Known)

    Compute known bits from the range metadata.

    the set of bits that are known to be zero

    the set of bits that are known to be one

    Defined at line 579 of file llvm/lib/Analysis/ValueTracking.cpp

  • AntiDepBreaker * createCriticalAntiDepBreaker (MachineFunction & MFi, const RegisterClassInfo & RCI)

    Defined at line 697 of file llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp

  • ParsedModuleAndIndex parseAssemblyFileWithIndexNoUpgradeDebugInfo (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback)

    Only for use in llvm-as for testing; this does not produce a valid module.

    Defined at line 133 of file llvm/lib/AsmParser/Parser.cpp

  • MCStreamer * createGOFFStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)

    Defined at line of file

  • MCStreamer * createGOFFStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)

    Defined at line 63 of file llvm/lib/MC/MCGOFFStreamer.cpp

  • bool RecursivelyDeleteTriviallyDeadInstructions (Value * V, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU, function AboutToDeleteCallback)

    If the specified value is a trivially dead instruction, delete it.

    If that makes any of its operands trivially dead, delete them too,

    recursively. Return true if any instructions were deleted.

    Defined at line 533 of file llvm/lib/Transforms/Utils/Local.cpp

  • void initializeDependenceAnalysisWrapperPassPass (PassRegistry & )

    Defined at line 188 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • ScheduleDAGSDNodes * createDefaultScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)

    createDefaultScheduler - This creates an instruction scheduler appropriate

    for the target.

    Defined at line 300 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • FunctionPass * createPostDomTree ()

    Defined at line 90 of file llvm/lib/Analysis/PostDominators.cpp

  • void initializeDetectDeadLanesLegacyPass (PassRegistry & )

    Defined at line 421 of file llvm/lib/CodeGen/DetectDeadLanes.cpp

  • DWARFSectionKind deserializeSectionKind (uint32_t Value, unsigned int IndexVersion)

    Convert a value read from an index section to the internal representation.

    The conversion depends on the index section version, which is expected

    to be either 2 for pre-standard GNU proposal or 5 for DWARFv5 package file.

    Defined at line 68 of file llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp

  • void extractFromBranchWeightMD32 (const MDNode * ProfileData, SmallVectorImpl<uint32_t> & Weights)

    Faster version of extractBranchWeights() that skips checks and must only

    be called with "branch_weights" metadata nodes. Supports uint32_t.

    Defined at line 189 of file llvm/lib/IR/ProfDataUtils.cpp

  • Constant * ConstantFoldBinaryOpOperands (unsigned int Opcode, Constant * LHS, Constant * RHS, const DataLayout & DL)

    Attempt to constant fold a binary operation with the specified operands.

    Returns null or a constant expression of the specified operands on failure.

    Defined at line 1320 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void writeStringsAndOffsets (MCStreamer & Out, DWPStringPool & Strings, MCSection * StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version)

    Defined at line of file

  • void initializeDomOnlyPrinterWrapperPassPass (PassRegistry & )

    Defined at line 176 of file llvm/lib/Analysis/DomPrinter.cpp

  • void appendToUsed (Module & M, ArrayRef<GlobalValue *> Values)

    Adds global values to the llvm.used list.

    Defined at line 158 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • FunctionPass * createX86DynAllocaExpanderLegacyPass ()

    Defined at line 86 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp

  • ImmutablePass * createImmutableModuleSummaryIndexWrapperPass (const ModuleSummaryIndex * Index)

    ===--------------------------------------------------------------------===//

    ImmutableModuleSummaryIndexWrapperPass - This pass wrap provided

    ModuleSummaryIndex object for the module, to be used by other passes.

    Defined at line 1239 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • MachineFunctionPass * createMIR2VecVocabPrinterLegacyPass (raw_ostream & OS)

    MIR2VecVocabPrinter pass - This pass prints out the MIR2Vec vocabulary

    contents to the given stream as a debugging tool.

    Defined at line 619 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • void initializeDomOnlyViewerWrapperPassPass (PassRegistry & )

    Defined at line 109 of file llvm/lib/Analysis/DomPrinter.cpp

  • bool tryPromoteCall (CallBase & CB)

    Try to promote (devirtualize) a virtual call on an Alloca. Return true on

    success.

    Look for a pattern like:

    %o = alloca %class.Impl

    %1 = getelementptr %class.Impl, %class.Impl* %o, i64 0, i32 0, i32 0

    store i32 (...)** bitcast (i8** getelementptr inbounds

    ({ [3 x i8*] }, { [3 x i8*] }*

    @

    _ZTV4Impl, i64 0, inrange i32 0, i64 2)

    to i32 (...)**), i32 (...)*** %1

    %2 = getelementptr inbounds %class.Impl, %class.Impl* %o, i64 0, i32 0

    %3 = bitcast %class.Interface* %2 to void (%class.Interface*)***

    %vtable.i = load void (%class.Interface*)**, void (%class.Interface*)*** %3

    %4 = load void (%class.Interface*)*, void (%class.Interface*)** %vtable.i

    call void %4(%class.Interface* nonnull %2)

    @

    _ZTV4Impl = linkonce_odr dso_local unnamed_addr constant { [3 x i8*] }

    { [3 x i8*]

    [i8* null, i8* bitcast ({ i8*, i8*, i8* }*

    @

    _ZTI4Impl to i8*),

    i8* bitcast (void (%class.Impl*)*

    @

    _ZN4Impl3RunEv to i8*)] }

    Defined at line 685 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • void DecodePSHUFBMask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a PSHUFB mask from a raw array of constants such as from

    BUILD_VECTOR.

    Defined at line 293 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void computeKnownBitsFromContext (const Value * V, KnownBits & Known, const SimplifyQuery & Q, unsigned int Depth)

    Merge bits known from context-dependent facts into Known.

    Defined at line 1036 of file llvm/lib/Analysis/ValueTracking.cpp

  • std::unique_ptr<MIRParser> createMIRParser (std::unique_ptr<MemoryBuffer> Contents, LLVMContext & Context, function ProcessIRFunction)

    This function is another interface to the MIR serialization format parser.

    It returns a MIR parser that works with the given memory buffer and that can

    parse the embedded LLVM IR module and initialize the machine functions by

    parsing the machine function's state.

    Parameters

    Contents - The MemoryBuffer containing the machine level IR.
    Context - Context which will be used for the parsed LLVM IR module.

    Defined at line of file

  • int createMIRParser (int Contents, LLVMContext & Context, std::function<void (Function &)> ProcessIRFunction)

    This function is another interface to the MIR serialization format parser.

    It returns a MIR parser that works with the given memory buffer and that can

    parse the embedded LLVM IR module and initialize the machine functions by

    parsing the machine function's state.

    Parameters

    Contents - The MemoryBuffer containing the machine level IR.
    Context - Context which will be used for the parsed LLVM IR module.

    Defined at line 1283 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp

  • bool shouldOptimizeForSize (const BasicBlock * BB, ProfileSummaryInfo * PSI, BlockFrequencyInfo * BFI, PGSOQueryType QueryType)

    Returns true if basic block

    is suggested to be size-optimized based on

    the profile.

    Defined at line 107 of file llvm/lib/Transforms/Utils/SizeOpts.cpp

  • Value * simplifyFSubInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FSub, fold the result or return null.

    Defined at line 6030 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • MCStreamer * createMachOStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE, bool DWARFMustBeAtTheEnd, bool LabelSections)

    Defined at line 495 of file llvm/lib/MC/MCMachOStreamer.cpp

  • MCStreamer * createMachOStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE, bool DWARFMustBeAtTheEnd, bool LabelSections)

    Defined at line of file

  • CondCode getFCmpCondCode (Predicate Pred)

    getFCmpCondCode - Return the ISD condition code corresponding to

    the given LLVM IR floating-point condition code. This includes

    consideration of global floating-point math flags.

    Defined at line 207 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeDomPrinterWrapperPassPass (PassRegistry & )

    Defined at line 172 of file llvm/lib/Analysis/DomPrinter.cpp

  • Pass * createLoopSimplifyPass ()

    ===----------------------------------------------------------------------===//

    LoopSimplify - Insert Pre-header blocks into the CFG for every function in

    the module. This pass updates dominator information, loop information, and

    does not add critical edges to the CFG.

    AU.addRequiredID(LoopSimplifyID);

    Defined at line 785 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • bool verifyModule (const Module & M, raw_ostream * OS, bool * BrokenDebugInfo)

    Check a module for errors.

    If there are no errors, the function returns false. If an error is

    found, a message describing the error is written to OS (if

    non-null) and true is returned.

    Returns

    true if the module is broken. If BrokenDebugInfo is

    supplied, DebugInfo verification failures won't be considered as

    error and instead *BrokenDebugInfo will be set to true. Debug

    info errors can be "recovered" from by stripping the debug info.

    Defined at line 7721 of file llvm/lib/IR/Verifier.cpp

  • Value * emitStrLen (Value * Ptr, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the strlen function to the builder, for the specified

    pointer. Ptr is required to be some pointer type, and the return value has

    'size_t' type.

    Defined at line 1632 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void initializeDomViewerWrapperPassPass (PassRegistry & )

    Defined at line 105 of file llvm/lib/Analysis/DomPrinter.cpp

  • void appendToCompilerUsed (Module & M, ArrayRef<GlobalValue *> Values)

    Adds global values to the llvm.compiler.used list.

    Defined at line 162 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • FunctionPass * createX86TileConfigPass ()

    Return a pass that config the tile registers.

    Defined at line 206 of file llvm/lib/Target/X86/X86TileConfig.cpp

  • ScheduleDAGSDNodes * createDAGLinearizer (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)

    createDAGLinearizer - This creates a "no-scheduling" scheduler which

    linearize the DAG using topological order.

    Defined at line 803 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp

  • MCCodeEmitter * createX86MCCodeEmitter (const MCInstrInfo & MCII, MCContext & Ctx)

    Defined at line 2027 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • FunctionPass * createFlattenCFGPass ()

    Public interface to the FlattenCFG pass

    Defined at line 81 of file llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp

  • void extractFromBranchWeightMD64 (const MDNode * ProfileData, SmallVectorImpl<uint64_t> & Weights)

    Faster version of extractBranchWeights() that skips checks and must only

    be called with "branch_weights" metadata nodes. Supports uint64_t.

    Defined at line 194 of file llvm/lib/IR/ProfDataUtils.cpp

  • LoopUnrollResult UnrollAndJamLoop (Loop * L, unsigned int Count, unsigned int TripCount, unsigned int TripMultiple, bool UnrollRemainder, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const TargetTransformInfo * TTI, OptimizationRemarkEmitter * ORE, Loop ** EpilogueLoop)

    This method performs Unroll and Jam. For a simple loop like:

    for (i = ..)

    Fore(i)

    for (j = ..)

    SubLoop(i, j)

    Aft(i)

    Instead of doing normal inner or outer unrolling, we do:

    for (i = .., i+=2)

    Fore(i)

    Fore(i+1)

    for (j = ..)

    SubLoop(i, j)

    SubLoop(i+1, j)

    Aft(i)

    Aft(i+1)

    So the outer loop is essetially unrolled and then the inner loops are fused

    ("jammed") together into a single loop. This can increase speed when there

    are loads in SubLoop that are invariant to i, as they become shared between

    the now jammed inner loops.

    We do this by spliting the blocks in the loop into Fore, Subloop and Aft.

    Fore blocks are those before the inner loop, Aft are those after. Normal

    Unroll code is used to copy each of these sets of blocks and the results are

    combined together into the final form above.

    isSafeToUnrollAndJam should be used prior to calling this to make sure the

    unrolling will be valid. Checking profitablility is also advisable.

    If EpilogueLoop is non-null, it receives the epilogue loop (if it was

    necessary to create one and not fully unrolled).

    Defined at line 213 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • bool isRemovableAlloc (const CallBase * V, const TargetLibraryInfo * TLI)

    Return true if this is a call to an allocation function that does not have

    side effects that we are required to preserve beyond the effect of

    allocating a new object.

    Ex: If our allocation routine has a counter for the number of objects

    allocated, and the program prints it on exit, can the value change due

    to optimization? Answer is highly language dependent.

    Note: *Removable* really does mean removable; it does not mean observable.

    A language (e.g. C++) can allow removing allocations without allowing

    insertion or speculative execution of allocation routines.

    Defined at line 330 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • bool mayHaveMemprofSummary (const CallBase * CB)

    Returns true if the instruction could have memprof metadata, used to ensure

    consistency between summary analysis and the ThinLTO backend processing.

    Defined at line 1247 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • MachineFunctionPass * createMIR2VecPrinterLegacyPass (raw_ostream & OS)

    Create a machine pass that prints MIR2Vec embeddings

    Defined at line 673 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • FunctionPass * createVerifierPass (bool FatalErrors)

    Defined at line 8137 of file llvm/lib/IR/Verifier.cpp

  • void initializeDominatorTreeWrapperPassPass (PassRegistry & )

    Defined at line 426 of file llvm/lib/IR/Dominators.cpp

  • raw_ostream & dbgs ()

    dbgs - Return a circular-buffered debug stream.

    Defined at line 207 of file llvm/lib/Support/Debug.cpp

  • const void * SavePrettyStackState ()

    Returns the topmost element of the "pretty" stack state.

    Defined at line 321 of file llvm/lib/Support/PrettyStackTrace.cpp

  • void setProfMetadata (Instruction * TI, ArrayRef EdgeCounts, uint64_t MaxCount)

    Defined at line 2408 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool operator< (const struct FrameIndexExpr & LHS, const struct FrameIndexExpr & RHS)

    Operator enabling sorting based on fragment offset.

    Defined at line 277 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void DecodeBLENDMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decode a BLEND immediate mask into a shuffle mask.

    Defined at line 315 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Error buildDuplicateError (const std::pair<uint64_t, UnitIndexEntry> & PrevE, const CompileUnitIdentifiers & ID, StringRef DWPName)

    Defined at line 599 of file llvm/lib/DWP/DWP.cpp

  • bool findVCToolChainViaSetupConfig (vfs::FileSystem & VFS, optional VCToolsVersion, std::string & Path, ToolsetLayout & VSLayout)

    Query the Setup Config server for installs, then pick the newest version

    and find its default VC toolchain. If `VCToolsVersion` is specified, that

    version is preferred over the latest version.

    This is the preferred way to discover new Visual Studios, as they're no

    longer listed in the registry.

    Defined at line 634 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • CondCode getFCmpCodeWithoutNaN (CondCode CC)

    getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats,

    return the equivalent code if we're allowed to assume that NaNs won't occur.

    Defined at line 229 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeDwarfEHPrepareLegacyPassPass (PassRegistry & )

    Defined at line 404 of file llvm/lib/CodeGen/DwarfEHPrepare.cpp

  • FunctionPass * createX86FastPreTileConfigPass ()

    Return a pass that preconfig the tile registers before fast reg allocation.

    Defined at line 711 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • Printable printBlockFreq (const MachineBlockFrequencyInfo & MBFI, BlockFrequency Freq)

    Print the block frequency

    relative to the current functions entry

    frequency. Returns a Printable object that can be piped via `

    <

    <

    ` to a

    `raw_ostream`.

    Defined at line 315 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp

  • bool formLCSSA (Loop & L, const DominatorTree & DT, const LoopInfo * LI, ScalarEvolution * SE)

    Put loop into LCSSA form.

    Looks at all instructions in the loop which have uses outside of the

    current loop. For each, an LCSSA PHI node is inserted and the uses outside

    the loop are rewritten to use this node. Sub-loops must be in LCSSA form

    already.

    LoopInfo and DominatorTree are required and preserved.

    If ScalarEvolution is passed in, it will be preserved.

    Returns true if any modifications are made to the loop.

    Defined at line 427 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • basic_string getInstrProfSectionName (InstrProfSectKind IPSK, ObjectFormatType OF, bool AddSegmentInfo)

    Return the name of the profile section corresponding to

    The name of the section depends on the object format type

    If

    is true, a segment prefix and additional linker hints may

    be added to the section name (this is the default).

    Defined at line 238 of file llvm/lib/ProfileData/InstrProf.cpp

  • Constant * ConstantFoldFPInstOperands (unsigned int Opcode, Constant * LHS, Constant * RHS, const DataLayout & DL, const Instruction * I, bool AllowNonDeterministic)

    Attempt to constant fold a floating point binary operation with the

    specified operands, applying the denormal handling mod to the operands.

    Returns null or a constant expression of the specified operands on failure.

    Defined at line 1442 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool isSafeToLoadUnconditionally (Value * V, Type * Ty, Align Alignment, const DataLayout & DL, Instruction * ScanFrom, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)

    Return true if we know that executing a load from this value cannot trap.

    If DT and ScanFrom are specified this method performs context-sensitive

    analysis and returns true if it is safe to load immediately before ScanFrom.

    If it is not obviously safe to load from the specified pointer, we do a

    quick local scan of the basic block containing ScanFrom, to determine if

    the address is already accessed.

    Defined at line 516 of file llvm/lib/Analysis/Loads.cpp

  • MCAsmBackend * createX86_32AsmBackend (const Target & T, const MCSubtargetInfo & STI, const MCRegisterInfo & MRI, const MCTargetOptions & Options)

    Defined at line 1468 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • bool isManyPotentiallyReachableFromMany (SmallVectorImpl<BasicBlock *> & Worklist, const SmallPtrSetImpl<const BasicBlock *> & StopSet, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)

    Determine whether there is a potentially a path from at least one block in

    'Worklist' to at least one block in 'StopSet' within a single function

    without passing through any of the blocks in 'ExclusionSet'. Returns false

    only if we can prove that once any block in 'Worklist' has been reached then

    no blocks in 'StopSet' can be executed without passing through any blocks in

    'ExclusionSet'. Conservatively returns true.

    Defined at line 249 of file llvm/lib/Analysis/CFG.cpp

  • KnownBits analyzeKnownBitsFromAndXorOr (const Operator * I, const KnownBits & KnownLHS, const KnownBits & KnownRHS, const SimplifyQuery & SQ, unsigned int Depth)

    Public so this can be used in `SimplifyDemandedUseBits`.

    Defined at line 1266 of file llvm/lib/Analysis/ValueTracking.cpp

  • void copyModuleAttrToFunctions (Module & M)

    Copies module attributes to the functions in the module.

    Currently only effects ARM, Thumb and AArch64 targets.

    Supported attributes:

    - branch-target-enforcement

    - branch-protection-pauth-lr

    - guarded-control-stack

    - sign-return-address

    - sign-return-address-with-bkey

    Defined at line 6252 of file llvm/lib/IR/AutoUpgrade.cpp

  • int getNextAvailablePluginDiagnosticKind ()

    Get the next available kind ID for a plugin diagnostic.

    Each time this function is called, it returns a different number.

    Therefore, a plugin that wants to "identify" its own classes

    with a dynamic identifier, just have to use this method to get a new ID

    and assign it to each of its classes.

    The returned ID will be greater than or equal to DK_FirstPluginKind.

    Thus, the plugin identifiers will not conflict with the

    DiagnosticKind values.

    Defined at line 45 of file llvm/lib/IR/DiagnosticInfo.cpp

  • void initializeEarlyCSELegacyPassPass (PassRegistry & )

    Defined at line 1926 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • bool operator< (const struct EntryValueInfo & LHS, const struct EntryValueInfo & RHS)

    Operator enabling sorting based on fragment offset.

    Defined at line 282 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • MCStreamer * createWasmStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)

    Defined at line of file

  • MCStreamer * createWasmStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)

    Defined at line 155 of file llvm/lib/MC/MCWasmStreamer.cpp

  • bool MergeBlockIntoPredecessor (BasicBlock * BB, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, MemoryDependenceResults * MemDep, bool PredecessorWithTwoSuccessors, DominatorTree * DT)

    Attempts to merge a block into its predecessor, if possible. The return

    value indicates success or failure.

    By default do not merge blocks if BB's predecessor has multiple successors.

    If PredecessorWithTwoSuccessors = true, the blocks can only be merged

    if BB's Pred has a branch to BB and to AnotherBB, and BB has a single

    successor Sing. In this case the branch will be updated with Sing instead of

    BB, and BB will still be merged into its predecessor and removed.

    If

    is not nullptr, update it directly; in that case, DTU must be

    nullptr.

    Defined at line 227 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void initializeLazyBPIPassPass (PassRegistry & Registry)

    Helper for client passes to initialize dependent passes for LBPI.

    Defined at line 71 of file llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp

  • ImmutablePass * createTypeBasedAAWrapperPass ()

    ===--------------------------------------------------------------------===//

    createTypeBasedAAWrapperPass - This pass implements metadata-based

    type-based alias analysis.

    Defined at line 746 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • bool canSimplifyInvokeNoUnwind (const Function * F)

    Defined at line 103 of file llvm/lib/IR/EHPersonalities.cpp

  • void initializeEarlyCSEMemSSALegacyPassPass (PassRegistry & )

    Defined at line 1949 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • void setIrrLoopHeaderMetadata (Module * M, Instruction * TI, uint64_t Count)

    Defined at line 2449 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • Value * emitWcsLen (Value * Ptr, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the wcslen function to the builder, for the specified

    pointer. Ptr is required to be some pointer type, and the return value has

    'size_t' type.

    Defined at line 1639 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void removeFromUsedLists (Module & M, function_ref ShouldRemove)

    Removes global values from the llvm.used and llvm.compiler.used arrays.

    should return true for any initializer field that should not be

    included in the replacement global.

    Defined at line 196 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void DecodeVPERM2X128Mask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 281 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • unique_ptr createGOFFObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)

    Construct a new GOFF writer instance.

    Parameters

    MOTW - The target-specific GOFF writer subclass.
    OS - The stream to write to.

    Defined at line 789 of file llvm/lib/MC/GOFFObjectWriter.cpp

  • std::optional<DecomposedBitTest> decomposeBitTestICmp (Value * LHS, Value * RHS, Predicate Pred, bool LookThroughTrunc, bool AllowNonZeroC, bool DecomposeAnd)

    Decompose an icmp into the form ((X

    &

    Mask) pred C) if possible.

    Unless

    is true, C will always be 0. If

    is specified, then, for equality predicates, this will

    decompose bitmasking via `and`.

    Defined at line 76 of file llvm/lib/Analysis/CmpInstAnalysis.cpp

  • Value * simplifyFMulInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FMul, fold the result or return null.

    Defined at line 6038 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • template <typename T>
    std::enable_if_t<is_integral_or_enum<T>::value, hash_code> hash_value (T value)

    Compute a hash_code for any integer value.

    Note that this function is intended to compute the same hash_code for

    a particular value without regard to the pre-promotion type. This is in

    contrast to hash_combine which may produce different hash_codes for

    differing argument types even if they would implicit promote to a common

    type without changing the value.

    Defined at line 622 of file llvm/include/llvm/ADT/Hashing.h

  • template <typename T>
    int hash_value (T value)

    Compute a hash_code for any integer value.

    Note that this function is intended to compute the same hash_code for

    a particular value without regard to the pre-promotion type. This is in

    contrast to hash_combine which may produce different hash_codes for

    differing argument types even if they would implicit promote to a common

    type without changing the value.

    Defined at line 622 of file llvm/include/llvm/ADT/Hashing.h

  • MachineFunctionPass * createStackFrameLayoutAnalysisPass ()

    Returns a newly-created StackFrameLayout pass.

    Defined at line 310 of file llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp

  • void initializeEarlyIfConverterLegacyPass (PassRegistry & )

    Defined at line 846 of file llvm/lib/CodeGen/EarlyIfConversion.cpp

  • FunctionPass * createX86FastTileConfigPass ()

    Return a pass that config the tile registers after fast reg allocation.

    Defined at line 191 of file llvm/lib/Target/X86/X86FastTileConfig.cpp

  • int parseSummaryIndexAssemblyFile (StringRef Filename, SMDiagnostic & Err)

    This function is a main interface to the LLVM Assembly Parser. It parses

    an ASCII file that (presumably) contains LLVM Assembly code for a module

    summary. It returns a ModuleSummaryIndex with the corresponding features.

    Note that this does not verify that the generated Index is valid, so you

    should run the verifier after parsing the file to check that it is okay.

    Parse LLVM Assembly Index from a file

    Parameters

    Filename The name of the file to parse
    Err Error result info.

    Defined at line 176 of file llvm/lib/AsmParser/Parser.cpp

  • std::pair<Instruction *, CaptureComponents> FindEarliestCapture (const Value * V, Function & F, bool ReturnCaptures, const DominatorTree & DT, CaptureComponents Mask, unsigned int MaxUsesToExplore)

    Returns the 'earliest' instruction that captures

    in

    , and which

    components may be captured (by any use, not necessarily the earliest one).

    An instruction A is considered earlier than instruction B, if A dominates

    B. If 2 escapes do not dominate each other, the terminator of the common

    dominator is chosen. If not all uses can be analyzed, the earliest escape

    is set to the first instruction in the function entry block. If

    does

    not escape, nullptr is returned. Note that the caller of the function has

    to ensure that the instruction the result value is compared against is

    not in a cycle.

    Only consider components that are part of

    Defined at line 251 of file llvm/lib/Analysis/CaptureTracking.cpp

  • Register constrainOperandRegClass (const MachineFunction & MF, const TargetRegisterInfo & TRI, MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const RegisterBankInfo & RBI, MachineInstr & InsertPt, const TargetRegisterClass & RegClass, MachineOperand & RegMO)

    Constrain the Register operand OpIdx, so that it is now constrained to the

    TargetRegisterClass passed as an argument (RegClass).

    If this fails, create a new virtual register in the correct class and insert

    a COPY before

    if it is a use or after if it is a definition.

    In both cases, the function also updates the register of RegMo. The debug

    location of

    is used for the new copy.

    Returns

    The virtual register constrained to the right register class.

    Defined at line 56 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void writeIndex (MCStreamer & Out, MCSection * Section, ArrayRef ContributionOffsets, const MapVector<uint64_t, UnitIndexEntry> & IndexEntries, uint32_t IndexVersion)

    Defined at line 545 of file llvm/lib/DWP/DWP.cpp

  • CondCode getICmpCondCode (Predicate Pred)

    getICmpCondCode - Return the ISD condition code corresponding to

    the given LLVM IR integer condition code.

    Defined at line 241 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeEarlyIfPredicatorPass (PassRegistry & )

    Defined at line 1228 of file llvm/lib/CodeGen/EarlyIfConversion.cpp

  • TimeTraceProfiler * getTimeTraceProfilerInstance ()

    Defined at line 57 of file llvm/lib/Support/TimeProfiler.cpp

  • Printable printBlockFreq (const BlockFrequencyInfo & BFI, BlockFrequency Freq)

    Print the block frequency

    relative to the current functions entry

    frequency. Returns a Printable object that can be piped via `

    <

    <

    ` to a

    `raw_ostream`.

    Defined at line 283 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp

  • CallBase & versionCallSite (CallBase & CB, Value * Callee, MDNode * BranchWeights)

    Predicate and clone the given call site using condition `CB.callee ==

    Callee`. See the comment `versionCallSiteWithCond` for the transformation.

    Defined at line 383 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • bool isSafeToUnrollAndJam (Loop * L, ScalarEvolution & SE, DominatorTree & DT, DependenceInfo & DI, LoopInfo & LI)

    Defined at line 861 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • MCAsmBackend * createX86_64AsmBackend (const Target & T, const MCSubtargetInfo & STI, const MCRegisterInfo & MRI, const MCTargetOptions & Options)

    Defined at line 1487 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • void initializeEarlyMachineLICMPass (PassRegistry & )

    Defined at line 349 of file llvm/lib/CodeGen/MachineLICM.cpp

  • FunctionPass * createUnifyLoopExitsPass ()

    ===----------------------------------------------------------------------===//

    UnifyLoopExits - For each loop, creates a new block N such that all exiting

    blocks branch to N, and then N distributes control flow to all the original

    exit blocks.

    Defined at line 64 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp

  • Value * getAllocAlignment (const CallBase * V, const TargetLibraryInfo * TLI)

    Gets the alignment argument for an aligned_alloc-like function, using either

    built-in knowledge based on fuction names/signatures or allocalign

    attributes. Note: the Value returned may not indicate a valid alignment, per

    the definition of the allocalign attribute.

    Defined at line 341 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • Printable printBlockFreq (const MachineBlockFrequencyInfo & MBFI, const MachineBasicBlock & MBB)

    Convenience function equivalent to calling

    `printBlockFreq(MBFI, MBFI.getBlockFreq(

    &MBB

    ))`.

    Defined at line 322 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp

  • MCStreamer * createSPIRVStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)

    Defined at line of file

  • void RecursivelyDeleteTriviallyDeadInstructions (SmallVectorImpl<WeakTrackingVH> & DeadInsts, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU, function AboutToDeleteCallback)

    Delete all of the instructions in `DeadInsts`, and all other instructions

    that deleting these in turn causes to be trivially dead.

    The initial instructions in the provided vector must all have empty use

    lists and satisfy `isInstructionTriviallyDead`.

    `DeadInsts` will be used as scratch storage for this routine and will be

    empty afterward.

    Defined at line 567 of file llvm/lib/Transforms/Utils/Local.cpp

  • void initializeEarlyTailDuplicateLegacyPass (PassRegistry & )

    Defined at line 83 of file llvm/lib/CodeGen/TailDuplication.cpp

  • bool isTimeTraceVerbose ()

    Defined at line 386 of file llvm/lib/Support/TimeProfiler.cpp

  • FunctionPass * createX86PreTileConfigPass ()

    Return a pass that insert pseudo tile config instruction.

    Defined at line 439 of file llvm/lib/Target/X86/X86PreTileConfig.cpp

  • void delinearize (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes, const SCEV * ElementSize)

    Split this SCEVAddRecExpr into two vectors of SCEVs representing the

    subscripts and sizes of an array access.

    The delinearization is a 3 step process: the first two steps compute the

    sizes of each subscript and the third step computes the access functions

    for the delinearized array:

    1. Find the terms in the step functions

    2. Compute the array size

    3. Compute the access function: divide the SCEV by the array size

    starting with the innermost dimensions found in step 2. The Quotient

    is the SCEV to be divided in the next step of the recursion. The

    Remainder is the subscript of the innermost dimension. Loop over all

    array dimensions computed in step 2.

    To compute a uniform array size for several memory accesses to the same

    object, one can collect in step 1 all the step terms for all the memory

    accesses, and compute in step 2 a unique array shape. This guarantees

    that the array shape will be the same across all memory accesses.

    FIXME: We could derive the result of steps 1 and 2 from a description of

    the array shape given in metadata.

    Example:

    A[][n][m]

    for i

    for j

    for k

    A[j+k][2i][5i] =

    The initial SCEV:

    A[{{{0,+,2*m+5}_i, +, n*m}_j, +, n*m}_k]

    1. Find the different terms in the step functions:

    -> [2*m, 5, n*m, n*m]

    2. Compute the array size: sort and unique them

    -> [n*m, 2*m, 5]

    find the GCD of all the terms = 1

    divide by the GCD and erase constant terms

    -> [n*m, 2*m]

    GCD = m

    divide by GCD -> [n, 2]

    remove constant terms

    -> [n]

    size of the array is A[unknown][n][m]

    3. Compute the access function

    a. Divide {{{0,+,2*m+5}_i, +, n*m}_j, +, n*m}_k by the innermost size m

    Quotient: {{{0,+,2}_i, +, n}_j, +, n}_k

    Remainder: {{{0,+,5}_i, +, 0}_j, +, 0}_k

    The remainder is the subscript of the innermost array dimension: [5i].

    b. Divide Quotient: {{{0,+,2}_i, +, n}_j, +, n}_k by next outer size n

    Quotient: {{{0,+,0}_i, +, 1}_j, +, 1}_k

    Remainder: {{{0,+,2}_i, +, 0}_j, +, 0}_k

    The Remainder is the subscript of the next array dimension: [2i].

    The subscript of the outermost dimension is the Quotient: [j+k].

    Overall, we have: A[][n][m], and the access function: A[j+k][2i][5i].

    Defined at line 463 of file llvm/lib/Analysis/Delinearization.cpp

  • MachineFunctionPass * createPrintMIRPass (raw_ostream & OS)

    MIRPrinting pass - this pass prints out the LLVM IR into the given stream

    using the MIR serialization format.

    Defined at line 82 of file llvm/lib/CodeGen/MIRPrintingPass.cpp

  • Pass * createStructurizeCFGPass (bool SkipUniformRegions)

    ===----------------------------------------------------------------------===//

    CFG Structurization - Remove irreducible control flow

    When

    is true the structizer will not structurize

    regions that only contain uniform branches.

    Defined at line 1448 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp

  • bool extractBranchWeights (const Instruction & I, SmallVectorImpl<uint32_t> & Weights)

    Extract branch weights attatched to an Instruction

    Parameters

    I The Instruction to extract weights from.
    Weights [out] An output vector to fill with branch weights

    Defined at line 207 of file llvm/lib/IR/ProfDataUtils.cpp

  • bool findVCToolChainViaRegistry (std::string & Path, ToolsetLayout & VSLayout)

    Look in the registry for Visual Studio installs, and use that to get

    a toolchain path. VS2017 and newer don't get added to the registry.

    So if we find something here, we know that it's an older version.

    Defined at line 731 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • template <typename T>
    hash_code hash_value (const T * ptr)

    Compute a hash_code for a pointer's address.

    N.B.: This hashes the *address*. Not the value and not the type.

    Defined at line 629 of file llvm/include/llvm/ADT/Hashing.h

  • void initializeDummyCGSCCPassPass (PassRegistry & )

    Defined at line 729 of file llvm/lib/Analysis/CallGraphSCCPass.cpp

  • Predicate getICmpCondCode (CondCode Pred)

    getICmpCondCode - Return the LLVM IR integer condition code

    corresponding to the given ISD integer condition code.

    Defined at line 258 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeEHContGuardTargetsPass (PassRegistry & )

    Defined at line 55 of file llvm/lib/CodeGen/EHContGuardTargets.cpp

  • void RestorePrettyStackState (const void * State)

    Restores the topmost element of the "pretty" stack state to State, which

    should come from a previous call to SavePrettyStackState(). This is

    useful when using a CrashRecoveryContext in code that also uses

    PrettyStackTraceEntries, to make sure the stack that's printed if a crash

    happens after a crash that's been recovered by CrashRecoveryContext

    doesn't have frames on it that were added in code unwound by the

    CrashRecoveryContext.

    Defined at line 329 of file llvm/lib/Support/PrettyStackTrace.cpp

  • Value * emitStrDup (Value * Ptr, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strdup function to the builder, for the specified

    pointer. Ptr is required to be some pointer type, and the return value has

    'i8*' type.

    Defined at line 1648 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void decodeVSHUF64x2FamilyMask (unsigned int NumElts, unsigned int ScalarSize, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decode a shuffle packed values at 128-bit granularity

    (SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2)

    immediate mask into a shuffle mask.

    Defined at line 264 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void adjustKnownBitsForSelectArm (KnownBits & Known, Value * Cond, Value * Arm, bool Invert, const SimplifyQuery & Q, unsigned int Depth)

    Adjust

    for the given select

    to include information from the

    select

    Defined at line 1298 of file llvm/lib/Analysis/ValueTracking.cpp

  • void simplifyLoopAfterUnroll (Loop * L, bool SimplifyIVs, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const TargetTransformInfo * TTI, AAResults * AA)

    Perform some cleanup and simplifications on loops after unrolling. It is

    useful to simplify the IV's in the new loop, as well as do a quick

    simplify/dce pass of the instructions.

    Defined at line 343 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • MDNode * upgradeInstructionLoopAttachment (MDNode & N)

    Upgrade the loop attachment metadata node.

    Defined at line 6387 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeExpandIRInstsLegacyPassPass (PassRegistry & )

    Defined at line of file

  • Error createCtxProfFromYAML (StringRef Profile, raw_ostream & Out)

    Defined at line 258 of file llvm/lib/ProfileData/PGOCtxProfWriter.cpp

  • void applyFlowInference (const ProfiParams & Params, FlowFunction & Func)

    Apply the profile inference algorithm for a given function and provided

    profi options

    Defined at line 1321 of file llvm/lib/Transforms/Utils/SampleProfileInference.cpp

  • FunctionPass * createX86LowerTileCopyPass ()

    Return a pass that lower the tile copy instruction.

    Defined at line 68 of file llvm/lib/Target/X86/X86LowerTileCopy.cpp

  • Printable printBlockFreq (const BlockFrequencyInfo & BFI, const BasicBlock & BB)

    Convenience function equivalent to calling

    `printBlockFreq(BFI, BFI.getBlocakFreq(

    &BB

    ))`.

    Defined at line 290 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp

  • basic_string tensorValueToString (const char * Buffer, const TensorSpec & Spec)

    For debugging.

    Defined at line 107 of file llvm/lib/Analysis/TensorSpec.cpp

  • void install_bad_alloc_error_handler (fatal_error_handler_t handler, void * user_data)

    Installs a new bad alloc error handler that should be used whenever a

    bad alloc error, e.g. failing malloc/calloc, is encountered by LLVM.

    The user can install a bad alloc handler, in order to define the behavior

    in case of failing allocations, e.g. throwing an exception. Note that this

    handler must not trigger any additional allocations itself.

    If no error handler is installed the default is to print the error message

    to stderr, and call exit(1). If an error handler is installed then it is

    the handler's responsibility to log the message, it will no longer be

    printed to stderr. If the error handler returns, then exit(1) will be

    called.

    Parameters

    user_data - An argument which will be passed to the installed error handler.

    Defined at line 159 of file llvm/lib/Support/ErrorHandling.cpp

  • MCStreamer * createDXContainerStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)

    Defined at line of file

  • void renameModuleForThinLTO (Module & M, const ModuleSummaryIndex & Index, bool ClearDSOLocalOnDeclarations, int * GlobalsToImport)

    Perform in-place global value handling on the given Module for

    exported local functions renamed and promoted for ThinLTO.

    Defined at line of file

  • void renameModuleForThinLTO (Module & M, const ModuleSummaryIndex & Index, bool ClearDSOLocalOnDeclarations, SetVector<GlobalValue *> * GlobalsToImport)

    Perform in-place global value handling on the given Module for

    exported local functions renamed and promoted for ThinLTO.

    Defined at line 376 of file llvm/lib/Transforms/Utils/FunctionImportUtils.cpp

  • bool mustSuppressSpeculation (const LoadInst & LI)

    Return true if speculation of the given load must be suppressed to avoid

    ordering or interfering with an active sanitizer. If not suppressed,

    dereferenceability and alignment must be proven separately. Note: This

    is only needed for raw reasoning; if you use the interface below

    (isSafeToSpeculativelyExecute), this is handled internally.

    Defined at line 420 of file llvm/lib/Analysis/Loads.cpp

  • int colorEHFunclets (Function & F)

    If an EH funclet personality is in use (see isFuncletEHPersonality),

    this will recompute which blocks are in which funclet. It is possible that

    some blocks are in multiple funclets. Consider this analysis to be

    expensive.

    Defined at line 115 of file llvm/lib/IR/EHPersonalities.cpp

  • void initializeExpandMemCmpLegacyPassPass (PassRegistry & )

    Defined at line 1026 of file llvm/lib/CodeGen/ExpandMemCmp.cpp

  • void llvm_shutdown ()

    llvm_shutdown - Deallocate and destroy all ManagedStatic variables.

    Defined at line 75 of file llvm/lib/Support/ManagedStatic.cpp

  • void applyFlowInference (FlowFunction & Func)

    Apply the profile inference algorithm for a given flow function

    Defined at line 1363 of file llvm/lib/Transforms/Utils/SampleProfileInference.cpp

  • MCTargetStreamer * createX86AsmTargetStreamer (MCStreamer & S, formatted_raw_ostream & OS, MCInstPrinter * InstPrinter)

    Implements X86-only directives for assembly emission.

    Defined at line 455 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp

  • Expected<FileCache> localCache (const Twine & CacheNameRef, const Twine & TempFilePrefixRef, const Twine & CacheDirectoryPathRef, AddBufferFn AddBuffer)

    Create a local file system cache which uses the given cache name, temporary

    file prefix, cache directory and file callback. This function does not

    immediately create the cache directory if it does not yet exist; this is

    done lazily the first time a file is added. The cache name appears in error

    messages for errors during caching. The temporary file prefix is used in the

    temporary file naming scheme used when writing files atomically.

    Defined at line of file

  • template <class T>
    T any_cast (const Any & Value)

    Defined at line 137 of file llvm/include/llvm/ADT/Any.h

  • void initializeExpandPostRALegacyPass (PassRegistry & )

    Defined at line 75 of file llvm/lib/CodeGen/ExpandPostRAPseudos.cpp

  • std::optional<DecomposedBitTest> decomposeBitTest (Value * Cond, bool LookThroughTrunc, bool AllowNonZeroC, bool DecomposeAnd)

    Decompose an icmp into the form ((X

    &

    Mask) pred C) if

    possible. Unless

    is true, C will always be 0.

    If

    is specified, then, for equality predicates, this

    will decompose bitmasking via `and`.

    Defined at line 187 of file llvm/lib/Analysis/CmpInstAnalysis.cpp

  • template <class T>
    T any_cast (Any & Value)

    Defined at line 142 of file llvm/include/llvm/ADT/Any.h

  • template <typename T, typename U>
    hash_code hash_value (const std::pair<T, U> & arg)

    Compute a hash_code for a pair of objects.

    Defined at line 637 of file llvm/include/llvm/ADT/Hashing.h

  • OptPassGate & getGlobalPassGate ()

    Singleton instance of the OptPassGate class, so multiple pass managers don't

    need to coordinate their uses of OptBisect and OptDisable.

    Defined at line 94 of file llvm/lib/IR/OptBisect.cpp

  • void initializeExpandReductionsPass (PassRegistry & )

    Defined at line 179 of file llvm/lib/CodeGen/ExpandReductions.cpp

  • FunctionPass * createFixIrreduciblePass ()

    ===----------------------------------------------------------------------===//

    FixIrreducible - Convert each SCC with irreducible control-flow

    into a natural loop.

    Defined at line 166 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • bool formLCSSARecursively (Loop & L, const DominatorTree & DT, const LoopInfo * LI, ScalarEvolution * SE)

    Process a loop nest depth first.

    Defined at line 449 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void DecodeVPERMMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)

    Decodes the shuffle masks for VPERMQ/VPERMPD.

    Defined at line 364 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool findFixedSizeArrayDimensions (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<uint64_t> & Sizes, const SCEV * ElementSize)

    Compute the dimensions of fixed size array from

    and save the results

    in

    Defined at line 532 of file llvm/lib/Analysis/Delinearization.cpp

  • Value * simplifyFMAFMul (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for the multiplication of a FMA, fold the result or return

    null. In contrast to simplifyFMulInst, this function will not perform

    simplifications whose unrounded results differ when rounded to the argument

    type.

    Defined at line 6046 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • template <class T>
    T any_cast (Any && Value)

    Defined at line 147 of file llvm/include/llvm/ADT/Any.h

  • basic_string UpgradeDataLayoutString (StringRef DL, StringRef Triple)

    Upgrade the datalayout string by adding a section for address space

    pointers.

    Defined at line 6403 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeExpandVariadicsPass (PassRegistry & )

    Defined at line 1007 of file llvm/lib/Transforms/IPO/ExpandVariadics.cpp

  • void remove_bad_alloc_error_handler ()

    Restores default bad alloc error handling behavior.

    Defined at line 170 of file llvm/lib/Support/ErrorHandling.cpp

  • Constant * FlushFPConstant (Constant * Operand, const Instruction * I, bool IsOutput)

    Attempt to flush float point constant according to denormal mode set in the

    instruction's parent function attributes. If so, return a zero with the

    correct sign, otherwise return the original constant. Inputs and outputs to

    floating point instructions can have their mode set separately, so the

    direction is also needed.

    If the calling function's "denormal-fp-math" input mode is "dynamic" for the

    floating-point type, returns nullptr for denormal inputs.

    Defined at line 1374 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void timeTraceProfilerInitialize (unsigned int TimeTraceGranularity, StringRef ProcName, bool TimeTraceVerbose)

    Initialize the time trace profiler.

    This sets up the global

    variable to be the profiler instance.

    Defined at line 391 of file llvm/lib/Support/TimeProfiler.cpp

  • thread::native_handle_type llvm_execute_on_thread_impl (thread::start_routine_type ThreadFunc, void * Arg, optional StackSizeInBytes)

    Defined at line 74 of file llvm/lib/Support/Unix/Threading.inc

  • optional getAllocSize (const CallBase * CB, const TargetLibraryInfo * TLI, function_ref Mapper)

    Return the size of the requested allocation. With a trivial mapper, this is

    similar to calling getObjectSize(..., Exact), but without looking through

    calls that return their argument. A mapper function can be used to replace

    one Value* (operand to the allocation) with another. This is useful when

    doing abstract interpretation.

    Defined at line 366 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • template <class T>
    const T * any_cast (const Any * Value)

    Defined at line 152 of file llvm/include/llvm/ADT/Any.h

  • void initializeExternalAAWrapperPassPass (PassRegistry & )

    Defined at line 726 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • FunctionPass * createTailCallEliminationPass ()

    Public interface to the TailCallElimination pass

    Defined at line 981 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • MDNode * GetUnrollMetadata (MDNode * LoopID, StringRef Name)

    Given an llvm.loop loop id metadata node, returns the loop hint metadata

    node with the given name (for example, "llvm.loop.unroll.count"). If no

    such metadata node exists, then nullptr is returned.

    Defined at line 1229 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • int parseSummaryIndexAssemblyString (StringRef AsmString, SMDiagnostic & Err)

    The function is a secondary interface to the LLVM Assembly Parser. It parses

    an ASCII string that (presumably) contains LLVM Assembly code for a module

    summary. It returns a a ModuleSummaryIndex with the corresponding features.

    Note that this does not verify that the generated Index is valid, so you

    should run the verifier after parsing the file to check that it is okay.

    Parse LLVM Assembly from a string

    Parameters

    AsmString The string containing assembly
    Err Error result info.

    Defined at line 189 of file llvm/lib/AsmParser/Parser.cpp

  • MachineFunctionPass * createResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel)

    This pass resets a MachineFunction when it has the FailedISel property

    as if it was just created.

    If EmitFallbackDiag is true, the pass will emit a

    DiagnosticInfoISelFallback for every MachineFunction it resets.

    If AbortOnFailedISel is true, abort compilation instead of resetting.

    Defined at line 92 of file llvm/lib/CodeGen/ResetMachineFunctionPass.cpp

  • Value * emitStrChr (Value * Ptr, char C, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strchr function to the builder, for the specified

    pointer and character. Ptr is required to be some pointer type, and the

    return value has 'i8*' type.

    Defined at line 1654 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Expected exprAdd (const APInt & Lhs, const APInt & Rhs, bool & Overflow)

    Performs operation and

    Defined at line 155 of file llvm/lib/FileCheck/FileCheck.cpp

  • bool haveNoCommonBitsSet (const WithCache<const Value *> & LHSCache, const WithCache<const Value *> & RHSCache, const SimplifyQuery & SQ)

    Return true if LHS and RHS have no common bits set.

    Defined at line 237 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool MergeBlockSuccessorsIntoGivenBlocks (SmallPtrSetImpl<BasicBlock *> & MergeBlocks, Loop * L, DomTreeUpdater * DTU, LoopInfo * LI)

    Merge block(s) sucessors, if possible. Return true if at least two

    of the blocks were merged together.

    In order to merge, each block must be terminated by an unconditional

    branch. If L is provided, then the blocks merged into their predecessors

    must be in L. In addition, This utility calls on another utility:

    MergeBlockIntoPredecessor. Blocks are successfully merged when the call to

    MergeBlockIntoPredecessor returns true.

    Defined at line 393 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • template <class T>
    T * any_cast (Any * Value)

    Defined at line 159 of file llvm/include/llvm/ADT/Any.h

  • void initializeFEntryInserterLegacyPass (PassRegistry & )

    Defined at line 64 of file llvm/lib/CodeGen/FEntryInserter.cpp

  • void install_out_of_memory_new_handler ()

    Installs new handler that causes crash on allocation failure. It is called by

    InitLLVM.

    Defined at line 225 of file llvm/lib/Support/ErrorHandling.cpp

  • void calculateWinCXXEHStateNumbers (const Function * ParentFn, WinEHFuncInfo & FuncInfo)

    Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which

    describes the state numbers and tables used by __CxxFrameHandler3. This

    analysis assumes that WinEHPrepare has already been run.

    Defined at line 616 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • MCTargetStreamer * createX86ObjectTargetStreamer (MCStreamer & S, const MCSubtargetInfo & STI)

    Implements X86-only directives for object files.

    Defined at line 463 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp

  • bool RecursivelyDeleteTriviallyDeadInstructionsPermissive (SmallVectorImpl<WeakTrackingVH> & DeadInsts, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU, function AboutToDeleteCallback)

    Same functionality as RecursivelyDeleteTriviallyDeadInstructions, but allow

    instructions that are not trivially dead. These will be ignored.

    Returns true if any changes were made, i.e. any instructions trivially dead

    were found and deleted.

    Defined at line 548 of file llvm/lib/Transforms/Utils/Local.cpp

  • template <typename... Ts>
    hash_code hash_value (const std::tuple<Ts...> & arg)

    Compute a hash_code for a tuple.

    Defined at line 641 of file llvm/include/llvm/ADT/Hashing.h

  • void UpgradeAttributes (AttrBuilder & B)

    Upgrade attributes that changed format or kind.

    Defined at line 6536 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeFinalizeISelPass (PassRegistry & )

    Defined at line 84 of file llvm/lib/CodeGen/FinalizeISel.cpp

  • void llvm_thread_join_impl (thread::native_handle_type Thread)

    Defined at line 114 of file llvm/lib/Support/Unix/Threading.inc

  • bool isInTailCallPosition (const CallBase & Call, const TargetMachine & TM, bool ReturnsFirstArg)

    Test if the given instruction is in a position to be optimized

    with a tail-call. This roughly means that it's in a block with

    a return and there's nothing that needs to be scheduled

    between it and the return.

    This function only tests target-independent requirements.

    Defined at line 543 of file llvm/lib/CodeGen/Analysis.cpp

  • const DWARFUnitIndex & getDWARFUnitIndex (DWARFContext & Context, DWARFSectionKind Kind)

    Defined at line 900 of file llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp

  • Expected exprSub (const APInt & Lhs, const APInt & Rhs, bool & Overflow)

    Defined at line 160 of file llvm/lib/FileCheck/FileCheck.cpp

  • UnrollingPreferences gatherUnrollingPreferences (Loop * L, ScalarEvolution & SE, const TargetTransformInfo & TTI, BlockFrequencyInfo * BFI, ProfileSummaryInfo * PSI, llvm::OptimizationRemarkEmitter & ORE, int OptLevel, optional UserThreshold, optional UserCount, optional UserAllowPartial, optional UserRuntime, optional UserUpperBound, optional UserFullUnrollMaxCount)

    Gather the various unrolling parameters based on the defaults, compiler

    flags, TTI overrides and user specified parameters.

    Defined at line 188 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • FunctionPass * createDomPrinterWrapperPassPass ()

    Create methods available outside of this file, to use them

    "include/llvm/LinkAllPasses.h". Otherwise the pass would be deleted by

    the link time optimization.

    Defined at line 196 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeFixIrreduciblePass (PassRegistry & )

    Defined at line 173 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • MCAsmParserExtension * createDarwinAsmParser ()

    Defined at line 1195 of file llvm/lib/MC/MCParser/DarwinAsmParser.cpp

  • void llvm_thread_detach_impl (thread::native_handle_type Thread)

    Defined at line 106 of file llvm/lib/Support/Unix/Threading.inc

  • Expected<BitcodeFileContents> getBitcodeFileContents (MemoryBufferRef Buffer)

    Calls the ctor.

    Defined at line 8404 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool extractBranchWeights (const Instruction & I, uint64_t & TrueVal, uint64_t & FalseVal)

    Extract branch weights from a conditional branch or select Instruction.

    Parameters

    I The instruction to extract branch weights from.
    TrueVal [out] will contain the branch weight for the True branch
    FalseVal [out] will contain the branch weight for the False branch

    Defined at line 213 of file llvm/lib/IR/ProfDataUtils.cpp

  • MCSymbolizer * createMCSymbolizer (const Triple & TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void * DisInfo, MCContext * Ctx, int && RelInfo)

    Defined at line of file

  • MCSymbolizer * createMCSymbolizer (const Triple & TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void * DisInfo, MCContext * Ctx, std::unique_ptr<MCRelocationInfo> && RelInfo)

    Defined at line 186 of file llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp

  • FunctionPass * createDomOnlyPrinterWrapperPassPass ()

    Defined at line 200 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeFixupStatepointCallerSavedLegacyPass (PassRegistry & )

    Defined at line 93 of file llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp

  • MCAsmParserExtension * createELFAsmParser ()

    Defined at line 890 of file llvm/lib/MC/MCParser/ELFAsmParser.cpp

  • void timeTraceProfilerCleanup ()

    Cleanup the time trace profiler, if it was initialized.

    Defined at line 403 of file llvm/lib/Support/TimeProfiler.cpp

  • thread::id llvm_thread_get_id_impl (thread::native_handle_type Thread)

    Defined at line 122 of file llvm/lib/Support/Unix/Threading.inc

  • Constant * ConstantFoldCastOperand (unsigned int Opcode, Constant * C, Type * DestTy, const DataLayout & DL)

    Attempt to constant fold a cast with the specified operand. If it

    fails, it returns a constant expression of the specified operand.

    Defined at line 1485 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void calculateSEHStateNumbers (const Function * ParentFn, WinEHFuncInfo & FuncInfo)

    Defined at line 592 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void printRelativeBlockFreq (raw_ostream & OS, BlockFrequency EntryFreq, BlockFrequency Freq)

    Defined at line 51 of file llvm/lib/Support/BlockFrequency.cpp

  • void filterDeadComdatFunctions (SmallVectorImpl<Function *> & DeadComdatFunctions)

    Filter out potentially dead comdat functions where other entries keep the

    entire comdat group alive.

    This is designed for cases where functions appear to become dead but remain

    alive due to other live entries in their comdat group.

    The

    container should only have pointers to

    `Function`s which are members of a comdat group and are believed to be

    dead.

    After this routine finishes, the only remaining `Function`s in

    are those where every member of the comdat is listed

    and thus removing them is safe (provided *all* are removed).

    Defined at line 325 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • Expected exprMul (const APInt & Lhs, const APInt & Rhs, bool & Overflow)

    Defined at line 165 of file llvm/lib/FileCheck/FileCheck.cpp

  • Value * emitStrNCmp (Value * Ptr1, Value * Ptr2, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the strncmp function to the builder.

    Defined at line 1662 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • FunctionPass * createDomViewerWrapperPassPass ()

    Defined at line 204 of file llvm/lib/Analysis/DomPrinter.cpp

  • FunctionPass * createCodeGenPrepareLegacyPass ()

    createCodeGenPrepareLegacyPass - Transform the code to expose more pattern

    matching during instruction selection.

    Defined at line 544 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool isCompileUnit (const int & U)

    Defined at line 602 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h

  • bool isCompileUnit (const std::unique_ptr<DWARFUnit> & U)

    Defined at line 602 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h

  • void initializeFlattenCFGLegacyPassPass (PassRegistry & )

    Defined at line 77 of file llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp

  • MCAsmParserExtension * createCOFFAsmParser ()

    Defined at line 799 of file llvm/lib/MC/MCParser/COFFAsmParser.cpp

  • thread::id llvm_thread_get_current_id_impl ()

    Defined at line 124 of file llvm/lib/Support/Unix/Threading.inc

  • Pass * createCanonicalizeFreezeInLoopsPass ()

    ===----------------------------------------------------------------------===//

    CanonicalizeFreezeInLoops - Canonicalize freeze instructions in loops so they

    don't block SCEV.

    Defined at line 268 of file llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp

  • std::optional<TensorSpec> getTensorSpecFromJSON (LLVMContext & Ctx, const json::Value & Value)

    Construct a TensorSpec from a JSON dictionary of the form:

    { "name":

    <string

    >,

    "port":

    <int

    >,

    "type":

    <string

    . Use LLVM's types, e.g. float, double, int64_t>,

    "shape":

    <array

    of ints> }

    For the "type" field, see the C++ primitive types used in

    TFUTILS_SUPPORTED_TYPES.

    Defined at line 69 of file llvm/lib/Analysis/TensorSpec.cpp

  • void UpgradeOperandBundles (std::vector<OperandBundleDef> & OperandBundles)

    Upgrade operand bundles (without knowing about their user instruction).

    Defined at line 6563 of file llvm/lib/IR/AutoUpgrade.cpp

  • void UpgradeOperandBundles (int & OperandBundles)

    Upgrade operand bundles (without knowing about their user instruction).

    Defined at line of file

  • void DecodeVPPERMMask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPPERM mask from a raw array of constants such as from

    BUILD_VECTOR.

    This can only basic masks (permutes + zeros), not any of the other

    operations that VPPERM can perform.

    Defined at line 325 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Value * simplifyFDivInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FDiv, fold the result or return null.

    Defined at line 6105 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Register constrainOperandRegClass (const MachineFunction & MF, const TargetRegisterInfo & TRI, MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const RegisterBankInfo & RBI, MachineInstr & InsertPt, const MCInstrDesc & II, MachineOperand & RegMO, unsigned int OpIdx)

    Try to constrain Reg so that it is usable by argument OpIdx of the provided

    MCInstrDesc

    If this fails, create a new virtual register in the

    correct class and insert a COPY before

    if it is a use or after

    if it is a definition. In both cases, the function also updates the register

    of RegMo.

    This is equivalent to constrainOperandRegClass(..., RegClass, ...)

    with RegClass obtained from the MCInstrDesc. The debug location of

    is used for the new copy.

    Returns

    The virtual register constrained to the right register class.

    Defined at line 108 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • template <typename T>
    hash_code hash_value (const std::basic_string<T> & arg)

    Compute a hash_code for a standard string.

    Defined at line 648 of file llvm/include/llvm/ADT/Hashing.h

  • template <typename T>
    hash_code hash_value (const int & arg)

    Compute a hash_code for a standard string.

    Defined at line 648 of file llvm/include/llvm/ADT/Hashing.h

  • FunctionPass * createDomOnlyViewerWrapperPassPass ()

    Defined at line 208 of file llvm/lib/Analysis/DomPrinter.cpp

  • MCAsmParserExtension * createCOFFMasmParser ()

    Defined at line 538 of file llvm/lib/MC/MCParser/COFFMasmParser.cpp

  • Expected exprDiv (const APInt & Lhs, const APInt & Rhs, bool & Overflow)

    Defined at line 170 of file llvm/lib/FileCheck/FileCheck.cpp

  • FunctionPass * createPostDomPrinterWrapperPassPass ()

    Defined at line 212 of file llvm/lib/Analysis/DomPrinter.cpp

  • void calculateClrEHStateNumbers (const Function * Fn, WinEHFuncInfo & FuncInfo)

    Defined at line 653 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void initializeGCEmptyBasicBlocksPass (PassRegistry & )

    Defined at line 92 of file llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp

  • void timeTraceProfilerFinishThread ()

    Finish TimeTraceProfilerInstance on a worker thread.

    This doesn't remove the instance, just moves the pointer to global vector.

    Defined at line 416 of file llvm/lib/Support/TimeProfiler.cpp

  • FunctionPass * createEarlyCSEPass (bool UseMemorySSA)

    ===----------------------------------------------------------------------===//

    EarlyCSE - This pass performs a simple and fast CSE pass over the dominator

    tree.

    Defined at line 1934 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • bool RemoveRedundantDbgInstrs (BasicBlock * BB)

    Try to remove redundant dbg.value instructions from given basic block.

    Returns true if at least one instruction was removed. Remove redundant

    pseudo ops when RemovePseudoOp is true.

    Defined at line 583 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • FunctionPass * createPostDomOnlyPrinterWrapperPassPass ()

    Defined at line 216 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeGCMachineCodeAnalysisPass (PassRegistry & )

    Defined at line 257 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • MCAsmParserExtension * createXCOFFAsmParser ()

    Defined at line 52 of file llvm/lib/MC/MCParser/XCOFFAsmParser.cpp

  • Expected exprMax (const APInt & Lhs, const APInt & Rhs, bool & Overflow)

    Defined at line 179 of file llvm/lib/FileCheck/FileCheck.cpp

  • llvm::raw_ostream & operator<< (llvm::raw_ostream & O, const llvm::Annotations::Range & R)

    Defined at line 175 of file llvm/lib/Testing/Annotations/Annotations.cpp

  • Constant * getInitialValueOfAllocation (const Value * V, const TargetLibraryInfo * TLI, Type * Ty)

    If this is a call to an allocation function that initializes memory to a

    fixed value, return said value in the requested type. Otherwise, return

    nullptr.

    Defined at line 428 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • mca::CustomBehaviour * createCustomBehaviour (const MCSubtargetInfo & STI, const mca::SourceMgr & SrcMgr, const MCInstrInfo & MCII)

    Defined at line of file

  • MCStreamer * createX86WinCOFFStreamer (MCContext & C, std::unique_ptr<MCAsmBackend> && AB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)

    Construct an X86 Windows COFF machine code streamer which will generate

    PE/COFF format object files.

    Takes ownership of

    and

    Defined at line of file

  • MCStreamer * createX86WinCOFFStreamer (MCContext & C, int && AB, int && OW, int && CE)

    Construct an X86 Windows COFF machine code streamer which will generate

    PE/COFF format object files.

    Takes ownership of

    and

    Defined at line 75 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp

  • template <typename T>
    hash_code hash_value (const std::optional<T> & arg)

    Compute a hash_code for a standard string.

    Defined at line 652 of file llvm/include/llvm/ADT/Hashing.h

  • FunctionPass * createPostDomViewerWrapperPassPass ()

    Defined at line 220 of file llvm/lib/Analysis/DomPrinter.cpp

  • FunctionPass * createComplexDeinterleavingPass (const TargetMachine * TM)

    This pass implements generation of target-specific intrinsics to support

    handling of complex number arithmetic

    Defined at line 546 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • void initializeGCModuleInfoPass (PassRegistry & )

    Defined at line 71 of file llvm/lib/CodeGen/GCMetadata.cpp

  • MCAsmParserExtension * createWasmAsmParser ()

    Defined at line 312 of file llvm/lib/MC/MCParser/WasmAsmParser.cpp

  • Expected exprMin (const APInt & Lhs, const APInt & Rhs, bool & Overflow)

    Defined at line 185 of file llvm/lib/FileCheck/FileCheck.cpp

  • FunctionPass * createX86AvoidTrailingCallLegacyPass ()

    Defined at line 66 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp

  • Constant * ConstantFoldIntegerCast (Constant * C, Type * DestTy, bool IsSigned, const DataLayout & DL)

    Constant fold a zext, sext or trunc, depending on IsSigned and whether the

    DestTy is wider or narrower than C. Returns nullptr on failure.

    Defined at line 1586 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void DecodeZeroExtendMask (unsigned int SrcScalarBits, unsigned int DstScalarBits, unsigned int NumDstElts, bool IsAnyExtend, SmallVectorImpl<int> & ShuffleMask)

    Decode a zero extension instruction as a shuffle mask.

    Defined at line 371 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool isKnownToBeAPowerOfTwo (const Value * V, const DataLayout & DL, bool OrZero, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)

    Return true if the given value is known to have exactly one bit set when

    defined. For vectors return true if every element is known to be a power

    of two when defined. Supports values with integer or pointer type and

    vectors of integers. If 'OrZero' is set, then return true if the given

    value is either a power of two or zero.

    Defined at line 268 of file llvm/lib/Analysis/ValueTracking.cpp

  • FunctionPass * createPostDomOnlyViewerWrapperPassPass ()

    Defined at line 224 of file llvm/lib/Analysis/DomPrinter.cpp

  • bool canInstructionHaveMMRAs (const Instruction & I)

    Defined at line 166 of file llvm/lib/IR/MemoryModelRelaxationAnnotations.cpp

  • void initializeGVNLegacyPassPass (PassRegistry & )

    Defined at line 3399 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • RetainedKnowledge getKnowledgeFromOperandInAssume (AssumeInst & Assume, unsigned int Idx)

    Retreive the information help by Assume on the operand at index Idx.

    Assume should be an llvm.assume and Idx should be in the operand bundle.

    Defined at line 126 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • void calculateCXXStateForAsynchEH (const BasicBlock * BB, int State, WinEHFuncInfo & FuncInfo)

    For AsynchEH (VC++ option -EHa)

    Defined at line 243 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • Value * emitStrCpy (Value * Dst, Value * Src, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strcpy function to the builder, for the specified

    pointer arguments.

    Defined at line 1673 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • int parseAssembly (MemoryBufferRef F, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback, AsmParserContext * ParserContext)

    parseAssemblyFile and parseAssemblyString are wrappers around this function.

    Parse LLVM Assembly from a MemoryBuffer.

    Parameters

    F The MemoryBuffer containing assembly
    Err Error result info.
    Slots The optional slot mapping that will be initialized during parsing.
    DataLayoutCallback Override datalayout in the llvm assembly.

    Defined at line 50 of file llvm/lib/AsmParser/Parser.cpp

  • void initializeGlobalDCELegacyPassPass (PassRegistry & )

    Defined at line 58 of file llvm/lib/Transforms/IPO/GlobalDCE.cpp

  • ModulePass * createLowerGlobalDtorsLegacyPass ()

    ===----------------------------------------------------------------------===//

    LowerGlobalDtorsLegacy - Lower

    .global_dtors by creating wrapper

    functions that are registered in

    .global_ctors and which contain a call

    to `__cxa_atexit` to register their destructor functions.

    Defined at line 59 of file llvm/lib/Transforms/Utils/LowerGlobalDtors.cpp

  • void ReplaceInstWithValue (BasicBlock::iterator & BI, Value * V)

    Replace all uses of an instruction (specified by BI) with a value, then

    remove and delete the original instruction.

    Defined at line 608 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void ReplaceInstWithValue (int & BI, Value * V)

    Replace all uses of an instruction (specified by BI) with a value, then

    remove and delete the original instruction.

    Defined at line of file

  • bool attributesPermitTailCall (const Function * F, const Instruction * I, const ReturnInst * Ret, const TargetLoweringBase & TLI, bool * AllowDifferingSizes)

    Test if given that the input instruction is in the tail call position, if

    there is an attribute mismatch between the caller and the callee that will

    inhibit tail call optimizations.

    is an output parameter which, if forming a tail call

    is permitted, determines whether it's permitted only if the size of the

    caller's and callee's return types match exactly.

    Defined at line 592 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeGlobalMergeFuncPassWrapperPass (PassRegistry & )

    Defined at line 590 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • void calculateSEHStateForAsynchEH (const BasicBlock * BB, int State, WinEHFuncInfo & FuncInfo)

    The central theory of this routine is based on the following:

    A _try scope is always a SEME (Single Entry Multiple Exits) region

    as jumping into a _try is not allowed

    The single entry must start with a seh_try_begin() invoke with a

    correct State number that is the initial state of the SEME.

    Through control-flow, state number is propagated into all blocks.

    Side exits marked by seh_try_end() will unwind to parent state via

    existing SEHUnwindMap[].

    Side exits can ONLY jump into parent scopes (lower state number).

    Thus, when a block succeeds various states from its predecessors,

    the lowest State trumphs others.

    If some exits flow to unreachable, propagation on those paths terminate,

    not affecting remaining blocks.

    Defined at line 305 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • bool extractProfTotalWeight (const MDNode * ProfileData, uint64_t & TotalWeights)

    Retrieve the total of all weights from MD_prof data.

    Parameters

    ProfileData The profile data to extract the total weight from
    TotalWeights [out] input variable to fill with total weights

    Defined at line 233 of file llvm/lib/IR/ProfDataUtils.cpp

  • mca::InstrPostProcess * createInstrPostProcess (const MCSubtargetInfo & STI, const MCInstrInfo & MCII)

    Defined at line of file

  • BasicBlock * CloneBasicBlock (const BasicBlock * BB, ValueToValueMapTy & VMap, const Twine & NameSuffix, Function * F, ClonedCodeInfo * CodeInfo, bool MapAtoms)

    Return a copy of the specified basic block, but without

    embedding the block into a particular function. The block returned is an

    exact copy of the specified basic block, without any remapping having been

    performed. Because of this, this is only suitable for applications where

    the basic block will be inserted into the same function that it was cloned

    from (loop unrolling would use this, for example).

    Also, note that this function makes a direct copy of the basic block, and

    can thus produce illegal LLVM code. In particular, it will copy any PHI

    nodes from the original block, even though there are no predecessors for the

    newly cloned block (thus, phi nodes will have to be updated). Also, this

    block will branch to the old successors of the original block: these

    successors will have to have any PHI nodes updated to account for the new

    incoming edges.

    The correlation between instructions in the source and result basic blocks

    is recorded in the VMap map.

    If you have a particular suffix you'd like to use to add to any cloned

    names, specify it as the optional third parameter.

    If you would like the basic block to be auto-inserted into the end of a

    function, you can specify it as the optional fourth parameter.

    If you would like to collect additional information about the cloned

    function, you can specify a ClonedCodeInfo object with the optional fifth

    parameter.

    indicates whether source location atoms should be mapped for

    later remapping. Must be true when you duplicate a code path and a source

    location is intended to appear twice in the generated instructions. Can be

    set to false if you are transplanting code from one place to another.

    Setting true (default) is always safe (won't produce incorrect debug info)

    but is sometimes unnecessary, causing extra work that could be avoided by

    setting the parameter to false.

    Defined at line 112 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • bool RecursivelyDeleteDeadPHINode (PHINode * PN, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU)

    If the specified value is an effectively dead PHI node, due to being a

    def-use chain of single-use nodes that either forms a cycle or is terminated

    by a trivially dead instruction, delete it. If that makes any of its

    operands trivially dead, delete them too, recursively. Return true if a

    change was made.

    Defined at line 641 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * simplifyFRemInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FRem, fold the result or return null.

    Defined at line 6143 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void WriteBitcodeToFile (const Module & M, raw_ostream & Out, bool ShouldPreserveUseListOrder, const ModuleSummaryIndex * Index, bool GenerateHash, ModuleHash * ModHash)

    Write the specified module to the specified output stream.

    Defined at line 5598 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void initializeGlobalMergePass (PassRegistry & )

    Defined at line 260 of file llvm/lib/CodeGen/GlobalMerge.cpp

  • FunctionPass * createConstantHoistingPass ()

    ===----------------------------------------------------------------------===//

    ConstantHoisting - This pass prepares a function for expensive constants.

    Defined at line 135 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp

  • FunctionPass * createX86CallFrameOptimization ()

    Return a pass that optimizes the code-size of x86 call sequences. This is

    done by replacing esp-relative movs with pushes.

    Defined at line 627 of file llvm/lib/Target/X86/X86CallFrameOptimization.cpp

  • MCStreamer * createX86ELFStreamer (const Triple & T, MCContext & Context, std::unique_ptr<MCAsmBackend> && MAB, std::unique_ptr<MCObjectWriter> && MOW, std::unique_ptr<MCCodeEmitter> && MCE)

    Defined at line of file

  • MCStreamer * createX86ELFStreamer (const Triple & T, MCContext & Context, int && MAB, int && MOW, int && MCE)

    Defined at line 1529 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • void initializeGlobalsAAWrapperPassPass (PassRegistry & )

    Defined at line 1044 of file llvm/lib/Analysis/GlobalsModRef.cpp

  • void DecodeZeroMoveLowMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a move lower and zero upper instruction as a shuffle mask.

    Defined at line 385 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Constant * ConstantFoldLoadFromConst (Constant * C, Type * Ty, const APInt & Offset, const DataLayout & DL)

    Extract value of C at the given Offset reinterpreted as Ty. If bits past

    the end of C are accessed, they are assumed to be poison.

    Defined at line 714 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void initializeHardwareLoopsLegacyPass (PassRegistry & )

    Defined at line 596 of file llvm/lib/CodeGen/HardwareLoops.cpp

  • optional getAllocationFamily (const Value * I, const TargetLibraryInfo * TLI)

    If a function is part of an allocation family (e.g.

    malloc/realloc/calloc/free), return the identifier for its family

    of functions.

    Defined at line 502 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • mca::InstrumentManager * createInstrumentManager (const MCSubtargetInfo & STI, const MCInstrInfo & MCII)

    Defined at line of file

  • void report_bad_alloc_error (const char * Reason, bool GenCrashDiag)

    Reports a bad alloc error, calling any user defined bad alloc

    error handler. In contrast to the generic 'report_fatal_error'

    functions, this function might not terminate, e.g. the user

    defined error handler throws an exception, but it won't return.

    Note: When throwing an exception in the bad alloc handler, make sure that

    the following unwind succeeds, e.g. do not trigger additional allocations

    in the unwind chain.

    If no error handler is installed (default), throws a bad_alloc exception

    if LLVM is compiled with exception support. Otherwise prints the error

    to standard error and calls abort().

    Defined at line 178 of file llvm/lib/Support/ErrorHandling.cpp

  • Value * emitStpCpy (Value * Dst, Value * Src, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the stpcpy function to the builder, for the specified

    pointer arguments.

    Defined at line 1680 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void initializeLibcallLoweringInfoWrapperPass (PassRegistry & )

    Defined at line 55 of file llvm/lib/CodeGen/LibcallLoweringInfo.cpp

  • std::optional<PseudoProbe> extractProbe (const Instruction & Inst)

    Defined at line 54 of file llvm/lib/IR/PseudoProbe.cpp

  • void initializeMIRProfileLoaderPassPass (PassRegistry & )

    Defined at line 76 of file llvm/lib/CodeGen/MIRSampleProfile.cpp

  • void timeTraceProfilerWrite (raw_pwrite_stream & OS)

    Write profiling data to output stream.

    Data produced is JSON, in Chrome "Trace Event" format, see

    https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview

    Defined at line 423 of file llvm/lib/Support/TimeProfiler.cpp

  • basic_string getUniqueModuleId (Module * M)

    Produce a unique identifier for this module by taking the MD5 sum of

    the names of the module's strong external symbols that are not comdat

    members.

    This identifier is normally guaranteed to be unique, or the program would

    fail to link due to multiply defined symbols.

    If the module has no strong external symbols (such a module may still have a

    semantic effect if it performs global initialization), we cannot produce a

    unique identifier for this module, so we return the empty string.

    Defined at line 353 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void ReplaceInstWithInst (BasicBlock * BB, int & BI, Instruction * I)

    Replace the instruction specified by BI with the instruction specified by I.

    Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc. The

    original instruction is deleted and BI is updated to point to the new

    instruction.

    Defined at line of file

  • void ReplaceInstWithInst (BasicBlock * BB, BasicBlock::iterator & BI, Instruction * I)

    Replace the instruction specified by BI with the instruction specified by I.

    Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc. The

    original instruction is deleted and BI is updated to point to the new

    instruction.

    Defined at line 621 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void DecodeScalarMoveMask (unsigned int NumElts, bool IsLoad, SmallVectorImpl<int> & ShuffleMask)

    Decode a scalar float move instruction as a shuffle mask.

    Defined at line 391 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool isKnownToBeAPowerOfTwo (const Value * V, bool OrZero, const SimplifyQuery & Q, unsigned int Depth)

    Return true if the given value is known to have exactly one

    bit set when defined. For vectors return true if every element is known to

    be a power of two when defined. Supports values with integer or pointer

    types and vectors of integers.

    Defined at line 2623 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeIRSimilarityIdentifierWrapperPassPass (PassRegistry & )

    Defined at line 1470 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • FunctionPass * createX86WinEHStatePass ()

    Return an IR pass that inserts EH registration stack objects and explicit

    EH state updates. This pass must run after EH preparation, which does

    Windows-specific but architecture-neutral preparation.

    Defined at line 120 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • void runDeltaPass (TestRunner & Test, const DeltaPass & Pass)

    Runs the Delta Debugging algorithm, splits the code into chunks and

    reduces the amount of chunks that are considered interesting by the

    given test. The number of chunks is determined by a preliminary run of the

    reduction pass where no change must be made to the module.

    Defined at line 185 of file llvm/tools/llvm-reduce/deltas/Delta.cpp

  • bool isTriviallyVectorizable (Intrinsic::ID ID)

    Identify if the intrinsic is trivially vectorizable.

    This method returns true if the intrinsic's argument types are all scalars

    for the scalar form of the intrinsic and all vectors (or scalars handled by

    isVectorIntrinsicWithScalarOpAtArg) for the vector form of the intrinsic.

    Note: isTriviallyVectorizable implies isTriviallyScalarizable.

    Defined at line 46 of file llvm/lib/Analysis/VectorUtils.cpp

  • void setProbeDistributionFactor (Instruction & Inst, float Factor)

    Defined at line 74 of file llvm/lib/IR/PseudoProbe.cpp

  • void initializeIRTranslatorPass (PassRegistry & )

    Defined at line 110 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • FunctionPass * createSinkingPass ()

    ===----------------------------------------------------------------------===//

    Sink - Code Sinking

    Defined at line 275 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • void mapAtomInstance (const DebugLoc & DL, int & VMap)

    Mark a cloned instruction as a new instance so that its source loc can

    be updated when remapped.

    Defined at line of file

  • void mapAtomInstance (const DebugLoc & DL, ValueToValueMapTy & VMap)

    Mark a cloned instruction as a new instance so that its source loc can

    be updated when remapped.

    Defined at line 47 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • Value * simplifyShlInst (Value * Op0, Value * Op1, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)

    Given operands for a Shl, fold the result or return null.

    Defined at line 1435 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int createX86MachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)

    Construct an X86 Mach-O object writer.

    Defined at line 577 of file llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp

  • bool delinearizeFixedSizeArray (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes, const SCEV * ElementSize)

    Split this SCEVAddRecExpr into two vectors of SCEVs representing the

    subscripts and sizes of an access to a fixed size array. This is a special

    case of delinearization for fixed size arrays.

    The delinearization is a 2 step process: the first step estimates the sizes

    of each dimension of the array. The second step computes the access

    functions for the delinearized array:

    1. Compute the array size

    2. Compute the access function: same as normal delinearization

    Different from the normal delinearization, this function assumes that NO

    terms exist in the

    In other words, it assumes that the all step

    values are constant.

    This function is intended to replace getIndexExpressionsFromGEP. They rely

    on the GEP source element type so that will be removed in the future.

    Defined at line 644 of file llvm/lib/Analysis/Delinearization.cpp

  • bool returnTypeIsEligibleForTailCall (const Function * F, const Instruction * I, const ReturnInst * Ret, const TargetLoweringBase & TLI, bool ReturnsFirstArg)

    Test if given that the input instruction is in the tail call position if the

    return type or any attributes of the function will inhibit tail call

    optimization.

    Defined at line 652 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeIVUsersWrapperPassPass (PassRegistry & )

    Defined at line 48 of file llvm/lib/Analysis/IVUsers.cpp

  • void createProfileSamplingVar (Module & M)

    Create the variable for profile sampling.

    Defined at line 2139 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • Constant * ConstantFoldLoadFromConst (Constant * C, Type * Ty, const DataLayout & DL)

    Extract value of C reinterpreted as Ty. Same as previous API with zero

    offset.

    Defined at line 740 of file llvm/lib/Analysis/ConstantFolding.cpp

  • Value * emitStrNCpy (Value * Dst, Value * Src, Value * Len, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strncpy function to the builder, for the specified

    pointer arguments and length.

    Defined at line 1687 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool constrainSelectedInstRegOperands (MachineInstr & I, const TargetInstrInfo & TII, const TargetRegisterInfo & TRI, const RegisterBankInfo & RBI)

    Mutate the newly-selected instruction

    to constrain its (possibly

    generic) virtual register operands to the instruction's register class.

    This could involve inserting COPYs before (for uses) or after (for defs).

    This requires the number of operands to match the instruction description.

    FIXME: Not all instructions have the same number of operands. We should

    probably expose a constrain helper per operand and let the target selector

    constrain individual registers, like fast-isel.

    Defined at line 155 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool isOnlyUsedInZeroComparison (const Instruction * CxtI)

    Defined at line 256 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeIfConverterPass (PassRegistry & )

    Defined at line 456 of file llvm/lib/CodeGen/IfConversion.cpp

  • bool extractProfTotalWeight (const Instruction & I, uint64_t & TotalWeights)

    Retrieve the total of all weights from an instruction.

    Parameters

    I The instruction to extract the total weight from
    TotalWeights [out] input variable to fill with total weights

    Defined at line 262 of file llvm/lib/IR/ProfDataUtils.cpp

  • void DecodeEXTRQIMask (unsigned int NumElts, unsigned int EltSize, int Len, int Idx, SmallVectorImpl<int> & ShuffleMask)

    Decode a SSE4A EXTRQ instruction as a shuffle mask.

    Defined at line 400 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void llvm_unreachable_internal (const char * msg, const char * file, unsigned int line)

    This function calls abort(), and prints the optional message to stderr.

    Use the llvm_unreachable macro (that adds location info), instead of

    calling this function directly.

    Defined at line 233 of file llvm/lib/Support/ErrorHandling.cpp

  • bool operator== (const iterator & , const iterator & )

    Comparison operators are provided out of line.

    Defined at line 166 of file llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFExpression.h

  • void ReplaceInstWithInst (Instruction * From, Instruction * To)

    Replace the instruction specified by From with the instruction specified by

    To. Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc.

    Defined at line 655 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void initializeImmutableModuleSummaryIndexWrapperPassPass (PassRegistry & )

    Defined at line 1244 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • bool SimplifyInstructionsInBlock (BasicBlock * BB, const TargetLibraryInfo * TLI)

    Scan the specified basic block and try to simplify any instructions in it

    and recursively delete dead instructions.

    This returns true if it changed the code, note that it can delete

    instructions in other blocks as well in this block.

    Defined at line 721 of file llvm/lib/Transforms/Utils/Local.cpp

  • void embedBufferInModule (Module & M, MemoryBufferRef Buf, StringRef SectionName, Align Alignment)

    Embed the memory buffer

    into the module

    as a global using the

    specified section name. Also provide a metadata entry to identify it in the

    module using the same section name.

    Defined at line 384 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • bool isOnlyUsedInZeroEqualityComparison (const Instruction * CxtI)

    Defined at line 261 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * simplifyLShrInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q)

    Given operands for a LShr, fold the result or return null.

    Defined at line 1472 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int createX86ELFObjectWriter (bool IsELF64, uint8_t OSABI, uint16_t EMachine)

    Construct an X86 ELF object writer.

    Defined at line 400 of file llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp

  • Expected<LLVMRemarkFileHandle> setupLLVMOptimizationRemarks (LLVMContext & Context, StringRef RemarksFilename, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, optional RemarksHotnessThreshold)

    Set up optimization remarks that output to a file. The LLVMRemarkFileHandle

    manages the lifetime of the underlying ToolOutputFile to ensure

    is called before the file is destroyed or

    released from the handle. The handle must be kept alive until all remarks

    were emitted through the remark streamer.

    Defined at line 95 of file llvm/lib/IR/LLVMRemarkStreamer.cpp

  • void initializeImplicitNullChecksPass (PassRegistry & )

    Defined at line 813 of file llvm/lib/CodeGen/ImplicitNullChecks.cpp

  • FunctionPass * createX86ExpandPseudoPass ()

    Return a Machine IR pass that expands X86-specific pseudo

    instructions into a sequence of actual instructions. This pass

    must run after prologue/epilogue insertion and before lowering

    the MachineInstr to MC.

    Defined at line 944 of file llvm/lib/Target/X86/X86ExpandPseudo.cpp

  • Error timeTraceProfilerWrite (StringRef PreferredFileName, StringRef FallbackFileName)

    Write profiling data to a file.

    The function will write to

    if provided, if not

    then will write to

    appending .time-trace.

    Returns a StringError indicating a failure if the function is

    unable to open the file for writing.

    Defined at line 429 of file llvm/lib/Support/TimeProfiler.cpp

  • void initializeIndirectBrExpandLegacyPassPass (PassRegistry & )

    Defined at line 95 of file llvm/lib/CodeGen/IndirectBrExpandPass.cpp

  • Pass * createLowerAtomicPass ()

    ===----------------------------------------------------------------------===//

    LowerAtomic - Lower atomic intrinsics to non-atomic form

    Defined at line 98 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • Value * emitStpNCpy (Value * Dst, Value * Src, Value * Len, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the stpncpy function to the builder, for the specified

    pointer arguments and length.

    Defined at line 1695 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void DecodeINSERTQIMask (unsigned int NumElts, unsigned int EltSize, int Len, int Idx, SmallVectorImpl<int> & ShuffleMask)

    Decode a SSE4A INSERTQ instruction as a shuffle mask.

    Defined at line 437 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • Constant * ConstantFoldLoadFromConstPtr (Constant * C, Type * Ty, APInt Offset, const DataLayout & DL)

    Return the value that a load from C with offset Offset would produce if it

    is constant and determinable. If this is not determinable, return null.

    Defined at line 745 of file llvm/lib/Analysis/ConstantFolding.cpp

  • ParsedModuleAndIndex parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots)

    Parse LLVM Assembly including the summary index from a MemoryBuffer.

    parseAssemblyFileWithIndex is a wrapper around this function.

    Parameters

    F The MemoryBuffer containing assembly with summary
    Err Error result info.
    Slots The optional slot mapping that will be initialized during parsing.

    Defined at line 96 of file llvm/lib/AsmParser/Parser.cpp

  • void writeThinLinkBitcodeToFile (const Module & M, raw_ostream & Out, const ModuleSummaryIndex & Index, const ModuleHash & ModHash)

    Write the specified thin link bitcode file (i.e., the minimized bitcode

    file) to the given raw output stream, where it will be written in a new

    bitcode block. The thin link bitcode file is used for thin link, and it

    only contains the necessary information for thin link.

    ModHash is for use in ThinLTO incremental build, generated while the IR

    bitcode file writing.

    Defined at line 5806 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, AliasResult AR)

    <

    <

    operator for AliasResult.

    Defined at line 408 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • bool funcReturnsFirstArgOfCall (const CallInst & CI)

    Returns true if the parent of

    returns CI's first argument after

    calling

    Defined at line 723 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeInferAddressSpacesPass (PassRegistry & )

    Defined at line 264 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • int createX86WinCOFFObjectWriter (bool Is64Bit)

    Construct an X86 Win COFF object writer.

    Defined at line 126 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp

  • Value * FindAvailableLoadedValue (LoadInst * Load, BasicBlock * ScanBB, BasicBlock::iterator & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)

    Scan backwards to see if we have the value of the given load available

    locally within a small number of instructions.

    You can use this function to scan across multiple blocks: after you call

    this function, if ScanFrom points at the beginning of the block, it's safe

    to continue scanning the predecessors.

    Note that performing load CSE requires special care to make sure the

    metadata is set appropriately. In particular, aliasing metadata needs

    to be merged. (This doesn't matter for store-to-load forwarding because

    the only relevant load gets deleted.)

    Parameters

    Load The load we want to replace.
    ScanBB The basic block to scan.
    ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.
    MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.
    AA Optional pointer to alias analysis, to make the scan more precise.
    IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.

    Defined at line 542 of file llvm/lib/Analysis/Loads.cpp

  • void initializeInstSimplifyLegacyPassPass (PassRegistry & )

    Defined at line 115 of file llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp

  • FunctionPass * createX86CmovConverterPass ()

    This pass converts X86 cmov instructions into branch when profitable.

    Defined at line 893 of file llvm/lib/Target/X86/X86CmovConversion.cpp

  • Value * simplifyAShrInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q)

    Given operands for a AShr, fold the result or return nulll.

    Defined at line 1505 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool canReplaceReg (Register DstReg, Register SrcReg, MachineRegisterInfo & MRI)

    Check if DstReg can be replaced with SrcReg depending on the register

    constraints.

    Defined at line 201 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool validateDelinearizationResult (ScalarEvolution & SE, ArrayRef Sizes, ArrayRef Subscripts)

    Check that each subscript in

    is within the corresponding size

    in

    For the outermost dimension, the subscript being negative is

    allowed.

    Defined at line 736 of file llvm/lib/Analysis/Delinearization.cpp

  • void initializeInstructionCombiningPassPass (PassRegistry & )

    Defined at line 6165 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • int getEHScopeMembership (const MachineFunction & MF)

    Defined at line 760 of file llvm/lib/CodeGen/Analysis.cpp

  • void initializeInstructionSelectPass (PassRegistry & )

    Defined at line 62 of file llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp

  • bool IsBlockFollowedByDeoptOrUnreachable (const BasicBlock * BB)

    Check if we can prove that all paths starting from this block converge

    to a block that either has a

    .experimental.deoptimize call

    prior to its terminating return instruction or is terminated by unreachable.

    All blocks in the traversed sequence must have an unique successor, maybe

    except for the last one.

    Defined at line 641 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Error registerELFGraphInfo (Session & S, jitlink::LinkGraph & G)

    Record symbols, GOT entries, stubs, and sections for ELF file.

    Defined at line 103 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • bool isTriviallyScalarizable (Intrinsic::ID ID, const TargetTransformInfo * TTI)

    Note: There are intrinsics where implementing vectorization for the

    intrinsic is redundant, but we want to implement scalarization of the

    vector. To prevent the requirement that an intrinsic also implements

    vectorization we provide this separate function.

    Defined at line 124 of file llvm/lib/Analysis/VectorUtils.cpp

  • void setBranchWeights (Instruction & I, ArrayRef Weights, bool IsExpected, bool ElideAllZero)

    Create a new `branch_weights` metadata node and add or overwrite

    a `prof` metadata reference to instruction `I`.

    Parameters

    I the Instruction to set branch weights on.
    Weights an array of weights to set on instruction I.
    IsExpected were these weights added from an llvm.expect* intrinsic.

    Defined at line 310 of file llvm/lib/IR/ProfDataUtils.cpp

  • void DecodeVPERMILPMask (unsigned int NumElts, unsigned int ScalarBits, ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants.

    Defined at line 477 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void calculateDbgEntityHistory (const MachineFunction * MF, const TargetRegisterInfo * TRI, DbgValueHistoryMap & DbgValues, DbgLabelInstrMap & DbgLabels)

    Defined at line 467 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • void initializeInterleavedAccessPass (PassRegistry & )

    Defined at line 199 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • bool replaceDbgUsesWithUndef (Instruction * I)

    Replace all the uses of an SSA value in

    .dbg intrinsics with

    undef. This is useful for signaling that a variable, e.g. has been

    found dead and hence it's unavailable at a given program point.

    Returns true if the dbg values have been changed.

    Defined at line 610 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * emitMemCpyChk (Value * Dst, Value * Src, Value * Len, Value * ObjSize, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the __memcpy_chk function to the builder. This expects that

    the Len and ObjSize have type 'size_t' and Dst/Src are pointers.

    Defined at line 1703 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool isAssumeWithEmptyBundle (const AssumeInst & Assume)

    Return true iff the operand bundles of the provided llvm.assume doesn't

    contain any valuable information. This is true when:

    - The operand bundle is empty

    - The operand bundle only contains information about dropped values or

    constant folded values.

    the argument to the call of llvm.assume may still be useful even if the

    function returned true.

    Defined at line 132 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • Value * simplifyAndInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for an And, fold the result or return null.

    Defined at line 2251 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeInterleavedLoadCombinePass (PassRegistry & )

    Defined at line 1366 of file llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp

  • Pass * createMergeICmpsLegacyPass ()

    ===----------------------------------------------------------------------===//

    MergeICmps - Merge integer comparison chains into a memcmp

    Defined at line 959 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • Constant * ConstantFoldLoadFromConstPtr (Constant * C, Type * Ty, const DataLayout & DL)

    Return the value that a load from C would produce if it is constant and

    determinable. If this is not determinable, return null.

    Defined at line 767 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool isKnownNonZero (const Value * V, const SimplifyQuery & Q, unsigned int Depth)

    Return true if the given value is known to be non-zero when defined. For

    vectors, return true if every element is known to be non-zero when

    defined. For pointers, if the context instruction and dominator tree are

    specified, perform context-sensitive analysis and return true if the

    pointer couldn't possibly be null at the specified instruction.

    Supports values with integer or pointer type and vectors of integers.

    Defined at line 3744 of file llvm/lib/Analysis/ValueTracking.cpp

  • TimeTraceProfilerEntry * timeTraceProfilerBegin (StringRef Name, StringRef Detail)

    Manually begin a time section, with the given

    and

    Profiler copies the string data, so the pointers can be given into

    temporaries. Time sections can be hierarchical; every Begin must have a

    matching End pair but they can nest.

    Defined at line 449 of file llvm/lib/Support/TimeProfiler.cpp

  • Error setupLLVMOptimizationRemarks (LLVMContext & Context, raw_ostream & OS, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, optional RemarksHotnessThreshold)

    Set up optimization remarks that output directly to a raw_ostream.

    is managed by the caller and must be open for writing until

    is called.

    Defined at line 153 of file llvm/lib/IR/LLVMRemarkStreamer.cpp

  • MCELFStreamer * createARMELFStreamer (MCContext & Context, unique_ptr TAB, unique_ptr OW, unique_ptr Emitter, bool IsThumb, bool IsAndroid)

    Defined at line of file

  • MCELFStreamer * createARMELFStreamer (MCContext & Context, int TAB, int OW, int Emitter, bool IsThumb, bool IsAndroid)

    Defined at line of file

  • void initializeJMCInstrumenterPass (PassRegistry & )

    Defined at line 62 of file llvm/lib/CodeGen/JMCInstrumenter.cpp

  • Error registerMachOGraphInfo (Session & S, jitlink::LinkGraph & G)

    Record symbols, GOT entries, stubs, and sections for MachO file.

    Defined at line 71 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp

  • bool isTriviallyDead (const MachineInstr & MI, const MachineRegisterInfo & MRI)

    Check whether an instruction

    is dead: it only defines dead virtual

    registers, and doesn't have other side effects.

    Defined at line 222 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Function * CloneFunction (Function * F, ValueToValueMapTy & VMap, ClonedCodeInfo * CodeInfo)

    Return a copy of the specified function and add it to that

    function's module. Also, any references specified in the VMap are changed

    to refer to their mapped value instead of the original one. If any of the

    arguments to the function are in the VMap, the arguments are deleted from

    the resultant function. The VMap is updated to include mappings from all of

    the instructions and basicblocks in the function from their old to new

    values. The final argument captures information about the cloned code if

    non-null.

    Defined at line 370 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • int fitWeights (ArrayRef Weights)

    Push the weights right to fit in uint32_t.

    Defined at line 89 of file llvm/lib/IR/ProfDataUtils.cpp

  • void initializeKCFIPass (PassRegistry & )

    Defined at line 59 of file llvm/lib/CodeGen/KCFI.cpp

  • FunctionPass * createX86FixupBWInsts ()

    Return a Machine IR pass that selectively replaces

    certain byte and word instructions by equivalent 32 bit instructions,

    in order to eliminate partial register usage, false dependences on

    the upper portions of registers, and to save code size.

    Defined at line 151 of file llvm/lib/Target/X86/X86FixupBWInsts.cpp

  • TimeTraceProfilerEntry * timeTraceProfilerBegin (StringRef Name, llvm::function_ref<std::string ()> Detail)

    Defined at line 458 of file llvm/lib/Support/TimeProfiler.cpp

  • Value * simplifyOrInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for an Or, fold the result or return null.

    Defined at line 2525 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeLCSSAVerificationPassPass (PassRegistry & )

    Defined at line 394 of file llvm/lib/Analysis/LoopPass.cpp

  • MCRegister getX86SubSuperRegister (MCRegister Reg, unsigned int Size, bool High)

    Parameters

    Reg speicifed register.
    Size the bit size of returned register.
    High requires the high register.

    Defined at line 750 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • void DecodeVPERMIL2PMask (unsigned int NumElts, unsigned int ScalarBits, unsigned int M2Z, ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants.

    Defined at line 499 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void initializeLCSSAWrapperPassPass (PassRegistry & )

    Defined at line 522 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • Error registerCOFFGraphInfo (Session & S, jitlink::LinkGraph & G)

    Record symbols, GOT entries, stubs, and sections for COFF file.

    Defined at line 68 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp

  • RetainedKnowledge getKnowledgeFromUse (const Use * U, ArrayRef<Attribute::AttrKind> AttrKinds)

    Return a valid Knowledge associated to the Use U if its Attribute kind is

    in AttrKinds.

    Defined at line 147 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • int parseSummaryIndexAssembly (MemoryBufferRef F, SMDiagnostic & Err)

    Parse LLVM Assembly for summary index from a MemoryBuffer.

    parseSummaryIndexAssemblyFile is a wrapper around this function.

    Parameters

    F The MemoryBuffer containing assembly with summary
    Err Error result info.

    Defined at line 165 of file llvm/lib/AsmParser/Parser.cpp

  • Value * FindAvailableLoadedValue (LoadInst * Load, BatchAAResults & AA, bool * IsLoadCSE, unsigned int MaxInstsToScan)

    This overload provides a more efficient implementation of

    FindAvailableLoadedValue() for the case where we are not interested in

    finding the closest clobbering instruction if no available load is found.

    This overload cannot be used to scan across multiple blocks.

    Defined at line 759 of file llvm/lib/Analysis/Loads.cpp

  • bool isVectorIntrinsicWithScalarOpAtArg (Intrinsic::ID ID, unsigned int ScalarOpdIdx, const TargetTransformInfo * TTI)

    Identifies if the vector form of the intrinsic has a scalar operand.

    Defined at line 148 of file llvm/lib/Analysis/VectorUtils.cpp

  • void writeIndexToFile (const ModuleSummaryIndex & Index, raw_ostream & Out, const int * ModuleToSummariesForIndex, const int * DecSummaries)

    Write the specified module summary index to the given raw output stream,

    where it will be written in a new bitcode block. This is used when

    writing the combined index file for ThinLTO. When writing a subset of the

    index for a distributed backend, provide the

    map.

    specifies the set of summaries for which the

    corresponding value should be imported as a declaration (prototype).

    Defined at line of file

  • void writeIndexToFile (const ModuleSummaryIndex & Index, raw_ostream & Out, const ModuleToSummariesForIndexTy * ModuleToSummariesForIndex, const GVSummaryPtrSet * DecSummaries)

    Write the specified module summary index to the given raw output stream,

    where it will be written in a new bitcode block. This is used when

    writing the combined index file for ThinLTO. When writing a subset of the

    index for a distributed backend, provide a

    map.

    Defined at line 5645 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • Pass * callDefaultCtor ()

    Specialization for the API used by the analysis infrastructure to create

    an instance of the eviction advisor.

    Defined at line 147 of file llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp

  • void initializeLazyBFIPassPass (PassRegistry & )

    Defined at line 66 of file llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp

  • Value * emitMemPCpy (Value * Dst, Value * Src, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the mempcpy function.

    Defined at line 1725 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Value * simplifyXorInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for an Xor, fold the result or return null.

    Defined at line 2610 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • FunctionPass * createX86DomainReassignmentPass ()

    Return a Machine IR pass that reassigns instruction chains from one domain

    to another, when profitable.

    Defined at line 837 of file llvm/lib/Target/X86/X86DomainReassignment.cpp

  • std::optional<ThreadPoolStrategy> get_threadpool_strategy (StringRef Num, ThreadPoolStrategy Default)

    Build a strategy from a number of threads as a string provided in

    When Num is above the max number of threads specified by the

    strategy, we attempt to equally allocate the threads on all CPU sockets.

    "0" or an empty string will return the

    strategy.

    "all" for using all hardware threads.

    Defined at line 101 of file llvm/lib/Support/Threading.cpp

  • void reportGISelFailure (MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, MachineOptimizationRemarkMissed & R)

    Report an ISel error as a missed optimization remark to the LLVMContext's

    diagnostic stream. Set the FailedISel MachineFunction property.

    Defined at line 259 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void setFittedBranchWeights (Instruction & I, ArrayRef Weights, bool IsExpected, bool ElideAllZero)

    Variant of `setBranchWeights` where the `Weights` will be fit first to

    uint32_t by shifting right.

    Defined at line 323 of file llvm/lib/IR/ProfDataUtils.cpp

  • TimeTraceProfilerEntry * timeTraceProfilerBegin (StringRef Name, llvm::function_ref<TimeTraceMetadata ()> MetaData)

    Defined at line 467 of file llvm/lib/Support/TimeProfiler.cpp

  • bool sinkRegion (DomTreeNode * , AAResults * , LoopInfo * , DominatorTree * , TargetLibraryInfo * , TargetTransformInfo * , Loop * CurLoop, MemorySSAUpdater & , ICFLoopSafetyInfo * , SinkAndHoistLICMFlags & , OptimizationRemarkEmitter * , Loop * OutermostLoop)

    Walk the specified region of the CFG (defined by all blocks

    dominated by the specified block, and that are in the current loop) in

    reverse depth first order w.r.t the DominatorTree. This allows us to visit

    uses before definitions, allowing us to sink a loop body in one pass without

    iteration. Takes DomTreeNode, AAResults, LoopInfo, DominatorTree,

    TargetLibraryInfo, Loop, AliasSet information for all

    instructions of the loop and loop safety information as

    arguments. Diagnostics is emitted via

    It returns changed status.

    is a loop to do sinking on.

    is used only when

    this function is called by

    Defined at line 559 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • Printable printJumpTableEntryReference (unsigned int Idx)

    Prints a jump table entry reference.

    The format is:

    %jump-table.5 - a jump table entry with index == 5.

    Usage: OS

    <

    <

    printJumpTableEntryReference(Idx)

    <

    <

    '

    ';

    Defined at line 1452 of file llvm/lib/CodeGen/MachineFunction.cpp

  • void enableStatistics (Session & S, bool UsingOrcRuntime)

    Adds a statistics gathering plugin if any stats options are used.

    Defined at line 132 of file llvm/tools/llvm-jitlink/llvm-jitlink-statistics.cpp

  • Constant * ConstantFoldLoadFromUniformValue (Constant * C, Type * Ty, const DataLayout & DL)

    If C is a uniform value where all bits are the same (either all zero, all

    ones, all undef or all poison), return the corresponding uniform value in

    the new type. If the value is not uniform or the result cannot be

    represented, return null.

    Defined at line 773 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool isKnownNegation (const Value * X, const Value * Y, bool NeedNSW, bool AllowPoison)

    Return true if the two given values are negation.

    Currently can recoginze Value pair:

    1:

    <X

    , Y> if X = sub (0, Y) or Y = sub (0, X)

    2:

    <X

    , Y> if X = sub (A, B) and Y = sub (B, A)

    Defined at line 8729 of file llvm/lib/Analysis/ValueTracking.cpp

  • RegAllocPriorityAdvisorAnalysisLegacy * createReleaseModePriorityAdvisorAnalysis ()

    Defined at line 310 of file llvm/lib/CodeGen/MLRegAllocPriorityAdvisor.cpp

  • bool lowerGlobalIFuncUsersAsGlobalCtor (Module & M, ArrayRef IFuncsToLower)

    Lower all calls to ifuncs by replacing uses with indirect calls loaded out

    of a global table initialized in a global constructor. This will introduce

    one constructor function and adds it to llvm.global_ctors. The constructor

    will call the resolver function once for each ifunc.

    Leaves any unhandled constant initializer uses as-is.

    If

    is empty, all ifuncs in the module will be lowered.

    If

    is non-empty, only the selected ifuncs will be lowered.

    The processed ifuncs without remaining users will be removed from the

    module.

    Defined at line 406 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • ConversionResult ConvertUTF8toUTF16 (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF16 ** targetStart, UTF16 * targetEnd, ConversionFlags flags)

    ---------------------------------------------------------------------

    Defined at line 567 of file llvm/lib/Support/ConvertUTF.cpp

  • PreservedAnalyses getLoopPassPreservedAnalyses ()

    Returns the minimum set of Analyses that all loop passes must preserve.

    Defined at line 141 of file llvm/lib/Analysis/LoopAnalysisManager.cpp

  • void finalizeLLVMOptimizationRemarks (LLVMContext & Context)

    Finalize optimization remarks and deregister the RemarkStreamer from the

    This must be called before closing the (file) stream that was used

    to set up the remarks.

    Defined at line 191 of file llvm/lib/IR/LLVMRemarkStreamer.cpp

  • void MergeBasicBlockIntoOnlyPred (BasicBlock * BB, DomTreeUpdater * DTU)

    BB is a block with one predecessor and its predecessor is known to have one

    successor (BB!). Eliminate the edge between them, moving the instructions in

    the predecessor into BB. This deletes the predecessor block.

    Defined at line 761 of file llvm/lib/Transforms/Utils/Local.cpp

  • void DecodeVPERMVMask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants.

    Defined at line 545 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • void initializeLazyValueInfoWrapperPassPass (PassRegistry & )

    Defined at line 59 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • Value * simplifyICmpInst (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for an ICmpInst, fold the result or return null.

    Defined at line 4098 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • FunctionPass * createInferAddressSpacesPass (unsigned int AddressSpace)

    ===----------------------------------------------------------------------===//

    InferAddressSpaces - Modify users of addrspacecast instructions with values

    in the source address space if using the destination address space is slower

    on the target. If AddressSpace is left to its default value, it will be

    obtained from the TargetTransformInfo.

    Defined at line 1462 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • bool getIndexExpressionsFromGEP (ScalarEvolution & SE, const GetElementPtrInst * GEP, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes)

    Gathers the individual index expressions from a GEP instruction.

    This function optimistically assumes the GEP references into a fixed size

    array. If this is actually true, this function returns a list of array

    subscript expressions in

    and a list of SCEV expressions

    describing the size of the individual array dimensions in

    Both

    lists have either equal length or the size list is one element shorter in

    case there is no known size available for the outermost array dimension.

    Returns true if successful and false otherwise.

    Defined at line 813 of file llvm/lib/Analysis/Delinearization.cpp

  • RetainedKnowledge getKnowledgeForValue (const Value * V, ArrayRef<Attribute::AttrKind> AttrKinds, AssumptionCache & AC, function_ref<bool (RetainedKnowledge, Instruction *, const CallBase::BundleOpInfo *)> Filter)

    Return a valid Knowledge associated to the Value V if its Attribute kind is

    in AttrKinds and it matches the Filter.

    Defined at line 160 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • bool computeUnrollCount (Loop * L, const TargetTransformInfo & TTI, DominatorTree & DT, LoopInfo * LI, AssumptionCache * AC, ScalarEvolution & SE, const SmallPtrSetImpl<const Value *> & EphValues, OptimizationRemarkEmitter * ORE, unsigned int TripCount, unsigned int MaxTripCount, bool MaxOrZero, unsigned int TripMultiple, const UnrollCostEstimator & UCE, TargetTransformInfo::UnrollingPreferences & UP, TargetTransformInfo::PeelingPreferences & PP, bool & UseUpperBound)

    Returns true if unroll count was set explicitly.

    Calculates unroll count and writes it to UP.Count.

    Unless IgnoreUser is true, will also use metadata and command-line options

    that are specific to to the LoopUnroll pass (which, for instance, are

    irrelevant for the LoopUnrollAndJam pass).

    FIXME: This function is used by LoopUnroll and LoopUnrollAndJam, but consumes

    many LoopUnroll-specific options. The shared functionality should be

    refactored into it own function.

    Defined at line 924 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • Pass * createIVUsersPass ()

    Defined at line 51 of file llvm/lib/Analysis/IVUsers.cpp

  • void initializeLegacyLICMPassPass (PassRegistry & )

    Defined at line 383 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • FunctionPass * createX86CompressEVEXPass ()

    This pass compress instructions from EVEX space to legacy/VEX/EVEX space when

    possible in order to reduce code size or facilitate HW decoding.

    Defined at line 360 of file llvm/lib/Target/X86/X86CompressEVEX.cpp

  • RegAllocPriorityAdvisorAnalysisLegacy * createDevelopmentModePriorityAdvisorAnalysis ()

    Defined at line of file

  • void reportGISelFailure (MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, const char * PassName, StringRef Msg, const MachineInstr & MI)

    Defined at line 266 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void initializeLegalizerPass (PassRegistry & )

    Defined at line 79 of file llvm/lib/CodeGen/GlobalISel/Legalizer.cpp

  • Value * emitMemChr (Value * Ptr, Value * Val, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the memchr function. This assumes that Ptr is a pointer,

    Val is an 'int' value, and Len is an 'size_t' value.

    Defined at line 1734 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool canConstantFoldCallTo (const CallBase * Call, const Function * F)

    canConstantFoldCallTo - Return true if its even possible to fold a call to

    the specified function.

    Defined at line 1602 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void DecodeVPERMV3Mask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)

    Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants.

    Defined at line 559 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp

  • bool isVectorIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID, int OpdIdx, const TargetTransformInfo * TTI)

    Identifies if the vector form of the intrinsic is overloaded on the type of

    the operand at index

    or on the return type if

    is -1.

    is used to consider target specific intrinsics, if no target specific

    intrinsics will be considered then it is appropriate to pass in nullptr.

    Defined at line 183 of file llvm/lib/Analysis/VectorUtils.cpp

  • void initializeGISelValueTrackingAnalysisLegacyPass (PassRegistry & )

    Defined at line 48 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const FaultMapParser & )

    Defined at line 51 of file llvm/lib/Object/FaultMapParser.cpp

  • FunctionPass * createX86IndirectThunksPass ()

    This pass creates the thunks for the retpoline feature.

    Defined at line 238 of file llvm/lib/Target/X86/X86IndirectThunks.cpp

  • Value * simplifyFCmpInst (CmpPredicate Predicate, Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q)

    Given operands for an FCmpInst, fold the result or return null.

    Defined at line 4334 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • RegAllocPriorityAdvisorProvider * createReleaseModePriorityAdvisorProvider ()

    Defined at line 398 of file llvm/lib/CodeGen/MLRegAllocPriorityAdvisor.cpp

  • int downscaleWeights (ArrayRef Weights, optional KnownMaxCount)

    downscale the given weights preserving the ratio. If the maximum value is

    not already known and not provided via

    Parameters

    KnownMaxCount , it will be obtained from

    Defined at line 328 of file llvm/lib/IR/ProfDataUtils.cpp

  • void scavengeFrameVirtualRegs (MachineFunction & MF, RegScavenger & RS)

    Replaces all frame index virtual registers with physical registers. Uses the

    register scavenger to find an appropriate register to use.

    Defined at line 462 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • void initializeLiveDebugValuesLegacyPass (PassRegistry & )

    Defined at line 100 of file llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp

  • bool isKnownInversion (const Value * X, const Value * Y)

    Return true iff:

    1. X is poison implies Y is poison.

    2. X is true implies Y is false.

    3. X is false implies Y is true.

    Otherwise, return false.

    Defined at line 8760 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeLiveDebugVariablesWrapperLegacyPass (PassRegistry & )

    Defined at line 84 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • TimeTraceProfilerEntry * timeTraceAsyncProfilerBegin (StringRef Name, StringRef Detail)

    Manually begin a time section, with the given

    and

    This starts Async Events having

    as a category which is shown

    separately from other traces. See

    https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.jh64i9l3vwa1

    for more details.

    Defined at line 476 of file llvm/lib/Support/TimeProfiler.cpp

  • bool TryToSimplifyUncondBranchFromEmptyBlock (BasicBlock * BB, DomTreeUpdater * DTU)

    BB is known to contain an unconditional branch, and contains no instructions

    other than PHI nodes, potential debug intrinsics and the branch. If

    possible, eliminate BB by rewriting all the predecessors to branch to the

    successor block and return true. If we can't transform, return false.

    Defined at line 1140 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool sinkRegionForLoopNest (DomTreeNode * , AAResults * , LoopInfo * , DominatorTree * , TargetLibraryInfo * , TargetTransformInfo * , Loop * , MemorySSAUpdater & , ICFLoopSafetyInfo * , SinkAndHoistLICMFlags & , OptimizationRemarkEmitter * )

    Call sinkRegion on loops contained within the specified loop

    in order from innermost to outermost.

    Defined at line 626 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • ModulePass * createGlobalsAAWrapperPass ()

    ===--------------------------------------------------------------------===//

    createGlobalsAAWrapperPass - This pass provides alias and mod/ref info for

    global values that do not have their addresses taken.

    Defined at line 1047 of file llvm/lib/Analysis/GlobalsModRef.cpp

  • void initializeLiveIntervalsWrapperPassPass (PassRegistry & )

    Defined at line 85 of file llvm/lib/CodeGen/LiveIntervals.cpp

  • template <typename... HandlerTs>
    Error handleErrors (Error E, HandlerTs &&... Handlers)

    Pass the ErrorInfo(s) contained in E to their respective handlers. Any

    unhandled errors (or Errors returned by handlers) are re-concatenated and

    returned.

    Because this function returns an error, its result must also be checked

    or returned. If you intend to handle all errors use handleAllErrors

    (which returns void, and will abort() on unhandled errors) instead.

    Defined at line 967 of file llvm/include/llvm/Support/Error.h

  • FunctionPass * createX86ReturnThunksPass ()

    This pass replaces ret instructions with jmp's to __x86_return thunk.

    Defined at line 99 of file llvm/lib/Target/X86/X86ReturnThunks.cpp

  • RegAllocPriorityAdvisorProvider * createDevelopmentModePriorityAdvisorProvider (LLVMContext & Ctx)

    Defined at line of file

  • Value * emitMemRChr (Value * Ptr, Value * Val, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the memrchr function, analogously to emitMemChr.

    Defined at line 1744 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Constant * ConstantFoldCall (const CallBase * Call, Function * F, ArrayRef Operands, const TargetLibraryInfo * TLI, bool AllowNonDeterministic)

    ConstantFoldCall - Attempt to constant fold a call to the specified function

    with the specified arguments, returning null if unsuccessful.

    Defined at line 4521 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void initializeLiveRangeShrinkPass (PassRegistry & )

    Defined at line 67 of file llvm/lib/CodeGen/LiveRangeShrink.cpp

  • Value * simplifySelectInst (Value * Cond, Value * TrueVal, Value * FalseVal, const SimplifyQuery & Q)

    Given operands for a SelectInst, fold the result or return null.

    Defined at line 5133 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void reportGISelWarning (MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, MachineOptimizationRemarkMissed & R)

    Report an ISel warning as a missed optimization remark to the LLVMContext's

    diagnostic stream.

    Defined at line 253 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • ConversionResult ConvertUTF8toUTF32Partial (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags)

    Convert a partial UTF8 sequence to UTF32. If the sequence ends in an

    incomplete code unit sequence, returns

    Defined at line 727 of file llvm/lib/Support/ConvertUTF.cpp

  • bool needsParamAccessSummary (const Module & M)

    Defined at line 1120 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp

  • FunctionPass * createPartiallyInlineLibCallsPass ()

    ===----------------------------------------------------------------------===//

    PartiallyInlineLibCalls - Tries to inline the fast path of library

    calls such as sqrt.

    Defined at line 234 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp

  • bool operator== (const DbgValueLoc & , const DbgValueLoc & )

    Compare two DbgValueLocs for equality.

    Defined at line 274 of file llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h

  • bool isKnownNonNegative (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Returns true if the give value is known to be non-negative.

    Defined at line 281 of file llvm/lib/Analysis/ValueTracking.cpp

  • void embedBitcodeInModule (Module & M, MemoryBufferRef Buf, bool EmbedBitcode, bool EmbedCmdline, const std::vector<uint8_t> & CmdArgs)

    If EmbedBitcode is set, save a copy of the llvm IR as data in the

    __LLVM,__bitcode section (.llvmbc on non-MacOS).

    If available, pass the serialized module via the Buf parameter. If not,

    pass an empty (default-initialized) MemoryBufferRef, and the serialization

    will be handled by this API. The same behavior happens if the provided Buf

    is not bitcode (i.e. if it's invalid data or even textual LLVM assembly).

    If EmbedCmdline is set, the command line is also exported in

    the corresponding section (__LLVM,_cmdline / .llvmcmd) - even if CmdArgs

    were empty.

    Defined at line 5874 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void embedBitcodeInModule (Module & M, MemoryBufferRef Buf, bool EmbedBitcode, bool EmbedCmdline, const int & CmdArgs)

    If EmbedBitcode is set, save a copy of the llvm IR as data in the

    __LLVM,__bitcode section (.llvmbc on non-MacOS).

    If available, pass the serialized module via the Buf parameter. If not,

    pass an empty (default-initialized) MemoryBufferRef, and the serialization

    will be handled by this API. The same behavior happens if the provided Buf

    is not bitcode (i.e. if it's invalid data or even textual LLVM assembly).

    If EmbedCmdline is set, the command line is also exported in

    the corresponding section (__LLVM,_cmdline / .llvmcmd) - even if CmdArgs

    were empty.

    Defined at line of file

  • optional canParallelizeReductionWhenUnrolling (PHINode & Phi, Loop * L, ScalarEvolution * SE)

    Defined at line 1249 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • template <typename HandlerT>
    void visitErrors (const Error & E, HandlerT H)

    Visit all the ErrorInfo(s) contained in E by passing them to the respective

    handler, without consuming the error.

    Defined at line 1002 of file llvm/include/llvm/Support/Error.h

  • bool operator< (const DbgValueLoc & , const DbgValueLoc & )

    Compare two fragments based on their offset.

    Defined at line 280 of file llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h

  • void timeTraceAddInstantEvent (StringRef Name, llvm::function_ref<std::string ()> Detail)

    Mark an instant event.

    Defined at line 485 of file llvm/lib/Support/TimeProfiler.cpp

  • RetainedKnowledge getKnowledgeValidInContext (const Value * V, ArrayRef<Attribute::AttrKind> AttrKinds, AssumptionCache & AC, const Instruction * CtxI, const DominatorTree * DT)

    Return a valid Knowledge associated to the Value V if its Attribute kind is

    in AttrKinds and the knowledge is suitable to be used in the context of

    CtxI.

    Defined at line 187 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • void generateParamAccessSummary (ModuleSummaryIndex & Index)

    Defined at line 1129 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp

  • void initializeLiveVariablesWrapperPassPass (PassRegistry & )

    Defined at line 64 of file llvm/lib/CodeGen/LiveVariables.cpp

  • FunctionPass * createX86InsertX87waitPass ()

    This pass insert wait instruction after X87 instructions which could raise

    fp exceptions when strict-fp enabled.

    Defined at line 56 of file llvm/lib/Target/X86/X86InsertWait.cpp

  • bool isVectorIntrinsicWithStructReturnOverloadAtField (Intrinsic::ID ID, int RetIdx, const TargetTransformInfo * TTI)

    Identifies if the vector form of the intrinsic that returns a struct is

    overloaded at the struct element index

    ///

    is used to

    consider target specific intrinsics, if no target specific intrinsics

    will be considered then it is appropriate to pass in nullptr.

    Defined at line 220 of file llvm/lib/Analysis/VectorUtils.cpp

  • void initializeLoadStoreOptPass (PassRegistry & )

    Defined at line 53 of file llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp

  • Constant * ConstantFoldBinaryIntrinsic (Intrinsic::ID ID, Constant * LHS, Constant * RHS, Type * Ty, Instruction * FMFSource)

    Defined at line 4510 of file llvm/lib/Analysis/ConstantFolding.cpp

  • Value * simplifyGEPInst (Type * SrcTy, Value * Ptr, ArrayRef Indices, GEPNoWrapFlags NW, const SimplifyQuery & Q)

    Given operands for a GetElementPtrInst, fold the result or return null.

    Defined at line 5271 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * emitMemCmp (Value * Ptr1, Value * Ptr2, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the memcmp function.

    Defined at line 1754 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void reportVectorizationFailure (StringRef DebugMsg, StringRef OREMsg, StringRef ORETag, OptimizationRemarkEmitter * ORE, Loop * TheLoop, Instruction * I)

    Reports a vectorization failure: print

    for debugging

    purposes along with the corresponding optimization remark

    If

    is passed, it is an instruction that prevents vectorization.

    Otherwise, the loop

    is used for the location of the remark.

    Defined at line 790 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void initializeLoadStoreVectorizerLegacyPassPass (PassRegistry & )

    Defined at line 416 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp

  • bool mayContainIrreducibleControl (const Function & F, const LoopInfo * LI)

    Defined at line 392 of file llvm/lib/Analysis/MustExecute.cpp

  • unsigned int getInverseGMinMaxOpcode (unsigned int MinMaxOpc)

    Returns the inverse opcode of

    which is a generic min/max

    opcode like G_SMIN.

    Defined at line 280 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void initializeLocalStackSlotPassPass (PassRegistry & )

    Defined at line 128 of file llvm/lib/CodeGen/LocalStackSlotAllocation.cpp

  • bool isKnownPositive (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Returns true if the given value is known be positive (i.e. non-negative

    and non-zero).

    Defined at line 286 of file llvm/lib/Analysis/ValueTracking.cpp

  • void timeTraceProfilerEnd ()

    Manually end the last time section.

    Defined at line 491 of file llvm/lib/Support/TimeProfiler.cpp

  • bool EliminateDuplicatePHINodes (BasicBlock * BB)

    Check for and eliminate duplicate PHI nodes in this block. This doesn't try

    to be clever about PHI nodes which differ only in the order of the incoming

    values, but instcombine orders them so it usually won't matter.

    This overload removes the duplicate PHI nodes directly.

    Defined at line 1509 of file llvm/lib/Transforms/Utils/Local.cpp

  • ImmutablePass * createBasicBlockSectionsProfileReaderWrapperPass (const MemoryBuffer * Buf)

    Creates a BasicBlockSectionsProfileReader pass to parse the basic block

    sections profile.

    is a memory buffer that contains the list of

    functions and basic block ids to selectively enable basic block sections.

    Defined at line 528 of file llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp

  • FunctionPass * createSeparateConstOffsetFromGEPPass (bool LowerGEP)

    ===----------------------------------------------------------------------===//

    SeparateConstOffsetFromGEP - Split GEPs for better CSE

    Defined at line 477 of file llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp

  • void initializeLoopDataPrefetchLegacyPassPass (PassRegistry & )

    Defined at line 148 of file llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp

  • void timeTraceProfilerEnd (TimeTraceProfilerEntry * E)

    Defined at line 496 of file llvm/lib/Support/TimeProfiler.cpp

  • void initializeLoopExtractorLegacyPassPass (PassRegistry & )

    Defined at line 92 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp

  • LLVMErrorRef wrap (Error )

    Conversion from Error to LLVMErrorRef for C error bindings.

    Defined at line 1490 of file llvm/include/llvm/Support/Error.h

  • RetainedKnowledge getKnowledgeFromBundle (AssumeInst & Assume, const CallBase::BundleOpInfo & BOI)

    This extracts the Knowledge from an element of an operand bundle.

    This is mostly for use in the assume builder.

    Defined at line 99 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • Intrinsic::ID getVectorIntrinsicIDForCall (const CallInst * CI, const TargetLibraryInfo * TLI)

    Returns intrinsic ID for call.

    For the input call instruction it finds mapping intrinsic and returns

    its ID, in case it does not found it return not_intrinsic.

    Defined at line 237 of file llvm/lib/Analysis/VectorUtils.cpp

  • std::optional<APInt> getIConstantVRegVal (Register VReg, const MachineRegisterInfo & MRI)

    If

    is defined by a G_CONSTANT, return the corresponding value.

    Defined at line 295 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Value * simplifyInsertValueInst (Value * Agg, Value * Val, ArrayRef Idxs, const SimplifyQuery & Q)

    Given operands for an InsertValueInst, fold the result or return null.

    Defined at line 5310 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * emitBCmp (Value * Ptr1, Value * Ptr2, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the bcmp function.

    Defined at line 1764 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void initializeLoopInfoWrapperPassPass (PassRegistry & )

    Defined at line 1219 of file llvm/lib/Analysis/LoopInfo.cpp

  • ConversionResult ConvertUTF8toUTF32 (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags)

    Convert a partial UTF8 sequence to UTF32. If the sequence ends in an

    incomplete code unit sequence, returns

    Defined at line 736 of file llvm/lib/Support/ConvertUTF.cpp

  • void initializeLoopPassPass (PassRegistry & )

    Manually defined generic "LoopPass" dependency initialization. This is used

    to initialize the exact set of passes from above in

    It can be used within a loop pass's initialization

    with:

    INITIALIZE_PASS_DEPENDENCY(LoopPass)

    As-if "LoopPass" were a pass.

    Defined at line 190 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const MachineValueTypeSet & T)

    Defined at line 249 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Constant * ConstantFoldLoadThroughBitcast (Constant * C, Type * DestTy, const DataLayout & DL)

    ConstantFoldLoadThroughBitcast - try to cast constant to destination type

    returning null if unsuccessful. Can cast pointer to pointer or pointer to

    integer and vice versa if their sizes are equal.

    Defined at line 358 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool isKnownNegative (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Returns true if the given value is known be negative (i.e. non-positive

    and non-zero).

    Defined at line 298 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeLoopSimplifyPass (PassRegistry & )

    Defined at line 780 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • int getBitcodeModuleList (MemoryBufferRef Buffer)

    Returns a list of modules in the specified bitcode buffer.

    Defined at line 8396 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool getObjectSize (const Value * Ptr, uint64_t & Size, const DataLayout & DL, const TargetLibraryInfo * TLI, ObjectSizeOpts Opts)

    Compute the size of the object pointed by Ptr. Returns true and the

    object size in Size if successful, and false otherwise.

    If RoundToAlign is true, then Size is rounded up to the alignment of

    allocas, byval arguments, and global variables.

    Defined at line 581 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void EnableStatistics (bool DoPrintOnExit)

    Enable the collection and printing of statistics.

    Defined at line 134 of file llvm/lib/Support/Statistic.cpp

  • unsigned int getInterleaveIntrinsicFactor (Intrinsic::ID ID)

    Returns the corresponding factor of llvm.vector.interleaveN intrinsics.

    Defined at line 251 of file llvm/lib/Analysis/VectorUtils.cpp

  • void initializeLoopStrengthReducePass (PassRegistry & )

    Defined at line 7159 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • std::optional<int64_t> getIConstantVRegSExtVal (Register VReg, const MachineRegisterInfo & MRI)

    If

    is defined by a G_CONSTANT fits in int64_t returns it.

    Defined at line 314 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • DynamicAPInt abs (const DynamicAPInt & X)

    Defined at line 367 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • void initializeLoopTermFoldPass (PassRegistry & )

    Defined at line 372 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp

  • Value * simplifyInsertElementInst (Value * Vec, Value * Elt, Value * Idx, const SimplifyQuery & Q)

    Given operands for an InsertElement, fold the result or return null.

    Defined at line 5316 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * emitMemCCpy (Value * Ptr1, Value * Ptr2, Value * Val, Value * Len, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the memccpy function.

    Defined at line 1774 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool EliminateDuplicatePHINodes (BasicBlock * BB, SmallPtrSetImpl<PHINode *> & ToRemove)

    Check for and eliminate duplicate PHI nodes in this block. This doesn't try

    to be clever about PHI nodes which differ only in the order of the incoming

    values, but instcombine orders them so it usually won't matter.

    This overload collects the PHI nodes to be removed into the ToRemove set.

    Defined at line 1498 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * findAvailablePtrLoadStore (const MemoryLocation & Loc, Type * AccessTy, bool AtLeastAtomic, BasicBlock * ScanBB, int & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)

    Scan backwards to see if we have the value of the given pointer available

    locally within a small number of instructions.

    You can use this function to scan across multiple blocks: after you call

    this function, if ScanFrom points at the beginning of the block, it's safe

    to continue scanning the predecessors.

    Parameters

    Loc The location we want the load and store to originate from.
    AccessTy The access type of the pointer.
    AtLeastAtomic Are we looking for at-least an atomic load/store ? In case it is false, we can return an atomic or non-atomic load or store. In case it is true, we need to return an atomic load or store.
    ScanBB The basic block to scan.
    ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.
    MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.
    AA Optional pointer to alias analysis, to make the scan more precise.
    IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.

    Defined at line of file

  • Value * findAvailablePtrLoadStore (const MemoryLocation & Loc, Type * AccessTy, bool AtLeastAtomic, BasicBlock * ScanBB, BasicBlock::iterator & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)

    Scan backwards to see if we have the value of the given pointer available

    locally within a small number of instructions.

    You can use this function to scan across multiple blocks: after you call

    this function, if ScanFrom points at the beginning of the block, it's safe

    to continue scanning the predecessors.

    Parameters

    Loc The location we want the load and store to originate from.
    AccessTy The access type of the pointer.
    AtLeastAtomic Are we looking for at-least an atomic load/store ? In case it is false, we can return an atomic or non-atomic load or store. In case it is true, we need to return an atomic load or store.
    ScanBB The basic block to scan.
    ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.
    MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.
    AA Optional pointer to alias analysis, to make the scan more precise.
    IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.

    Defined at line 675 of file llvm/lib/Analysis/Loads.cpp

  • DynamicAPInt ceilDiv (const DynamicAPInt & LHS, const DynamicAPInt & RHS)

    Division overflows only occur when negating the minimal possible value.

    Defined at line 371 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • void initializeLoopUnrollPass (PassRegistry & )

    Defined at line 1491 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • FunctionPass * createSpeculativeExecutionPass ()

    ===----------------------------------------------------------------------===//

    SpeculativeExecution - Aggressively hoist instructions to enable

    speculative execution on targets where branches are expensive.

    Defined at line 330 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp

  • ValueTypeByHwMode getValueTypeByHwMode (const Record * Rec, const CodeGenHwModes & CGH)

    Defined at line 111 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp

  • bool hoistRegion (DomTreeNode * , AAResults * , LoopInfo * , DominatorTree * , AssumptionCache * , TargetLibraryInfo * , Loop * , MemorySSAUpdater & , ScalarEvolution * , ICFLoopSafetyInfo * , SinkAndHoistLICMFlags & , OptimizationRemarkEmitter * , bool , bool AllowSpeculation)

    Walk the specified region of the CFG (defined by all blocks

    dominated by the specified block, and that are in the current loop) in depth

    first order w.r.t the DominatorTree. This allows us to visit definitions

    before uses, allowing us to hoist a loop body in one pass without iteration.

    Takes DomTreeNode, AAResults, LoopInfo, DominatorTree,

    TargetLibraryInfo, Loop, AliasSet information for all

    instructions of the loop and loop safety information as arguments.

    Diagnostics is emitted via

    It returns changed status.

    is whether values should be hoisted even if they are not

    guaranteed to execute in the loop, but are safe to speculatively execute.

    Defined at line 889 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool AreStatisticsEnabled ()

    Check if statistics are enabled.

    Defined at line 139 of file llvm/lib/Support/Statistic.cpp

  • unsigned int getDeinterleaveIntrinsicFactor (Intrinsic::ID ID)

    Returns the corresponding factor of llvm.vector.deinterleaveN intrinsics.

    Defined at line 272 of file llvm/lib/Analysis/VectorUtils.cpp

  • void initializeLowerAtomicLegacyPassPass (PassRegistry & )

    Defined at line 95 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • DynamicAPInt floorDiv (const DynamicAPInt & LHS, const DynamicAPInt & RHS)

    Defined at line 382 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • UseCaptureInfo DetermineUseCaptureKind (const Use & U, const Value * Base)

    Determine what kind of capture behaviour

    may exhibit.

    The returned UseCaptureInfo contains the components captured directly

    by the use (UseCC) and the components captured through the return value

    of the user (ResultCC).

    is the starting value of the capture analysis, which is

    relevant for address_is_null captures.

    Defined at line 267 of file llvm/lib/Analysis/CaptureTracking.cpp

  • bool isMathLibCallNoop (const CallBase * Call, const TargetLibraryInfo * TLI)

    Check whether the given call has no side-effects.

    Specifically checks for math routimes which sometimes set errno.

    Defined at line 4565 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool isKnownNonEqual (const Value * V1, const Value * V2, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if the given values are known to be non-equal when defined.

    Supports scalar integer types only.

    Defined at line 307 of file llvm/lib/Analysis/ValueTracking.cpp

  • ConversionResult ConvertUTF16toUTF8 (const UTF16 ** sourceStart, const UTF16 * sourceEnd, UTF8 ** targetStart, UTF8 * targetEnd, ConversionFlags flags)

    Defined at line 263 of file llvm/lib/Support/ConvertUTF.cpp

  • void initializeLowerEmuTLSPass (PassRegistry & )

    Defined at line 80 of file llvm/lib/CodeGen/LowerEmuTLS.cpp

  • FunctionPass * createX86PartialReductionLegacyPass ()

    Defined at line 65 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • const APInt & getIConstantFromReg (Register VReg, const MachineRegisterInfo & MRI)

    is defined by a G_CONSTANT, return the corresponding value.

    Defined at line 306 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • ErrorOr<std::string> FindProgramByName (const std::string & ExeName, const char * Argv0, void * MainAddr)

    Find the first executable file

    , either in the user's PATH or,

    failing that, in the same directory as argv[0]. This allows us to find

    another LLVM tool if it is built in the same directory. If no executable is

    found, an error is returned.

    Defined at line 198 of file llvm/tools/bugpoint/ToolRunner.cpp

  • void initializeLowerGlobalDtorsLegacyPassPass (PassRegistry & )

    Defined at line 56 of file llvm/lib/Transforms/Utils/LowerGlobalDtors.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const ValueTypeByHwMode & T)

    Defined at line 245 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp

  • Value * simplifyExtractValueInst (Value * Agg, ArrayRef Idxs, const SimplifyQuery & Q)

    Given operands for an ExtractValueInst, fold the result or return null.

    Defined at line 5393 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Constant * parseConstantValue (StringRef Asm, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)

    Parse a type and a constant value in the given string.

    The constant value can be any LLVM constant, including a constant

    expression.

    Parameters

    Slots The optional slot mapping that will restore the parsing state of the module.

    Returns

    null on error.

    Defined at line 195 of file llvm/lib/AsmParser/Parser.cpp

  • Value * emitSNPrintf (Value * Dest, Value * Size, Value * Fmt, ArrayRef Args, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the snprintf function.

    Defined at line 1784 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void CloneFunctionInto (Function * NewFunc, const Function * OldFunc, ValueToValueMapTy & VMap, CloneFunctionChangeType Changes, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)

    Clone OldFunc into NewFunc, transforming the old arguments into references

    to VMap values. Note that if NewFunc already has basic blocks, the ones

    cloned into it will be added to the end of the function. This function

    fills in a list of return instructions, and can optionally remap types

    and/or append the specified suffix to all values cloned.

    If

    is

    VMap is

    required to contain no non-identity GlobalValue mappings. Otherwise,

    referenced metadata will be cloned.

    If

    is less than

    indicating cloning into the same module (even if it's LocalChangesOnly), if

    debug info metadata transitively references a

    it will be

    cloned, effectively upgrading

    to GlobalChanges while suppressing

    cloning of types and compile units.

    If

    is

    the new

    module's

    will get updated with any newly created compile

    units. (

    leaves that work for the

    caller.)

    FIXME: Consider simplifying this function by splitting out

    and expecting / updating callers to call it

    first when / how it's needed.

    Defined at line 278 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • DynamicAPInt gcd (const DynamicAPInt & A, const DynamicAPInt & B)

    The operands must be non-negative for gcd.

    Defined at line 403 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • unique_ptr CreateInfoOutputFile ()

    Return a stream to print our output on.

    Defined at line 66 of file llvm/lib/Support/Timer.cpp

  • void initializeLowerIntrinsicsPass (PassRegistry & )

    -----------------------------------------------------------------------------

    Defined at line 103 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • FunctionPass * createSpeculativeExecutionIfHasBranchDivergencePass ()

    Same as createSpeculativeExecutionPass, but does nothing unless

    TargetTransformInfo::hasBranchDivergence() is true.

    Defined at line 334 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp

  • Constant * ReadByteArrayFromGlobal (const GlobalVariable * GV, uint64_t Offset)

    If GV is a constant with an initializer read its representation starting

    at Offset and return it as a constant array of unsigned char. Otherwise

    return null.

    Defined at line 658 of file llvm/lib/Analysis/ConstantFolding.cpp

  • std::optional<TypeSize> getBaseObjectSize (const Value * Ptr, const DataLayout & DL, const TargetLibraryInfo * TLI, ObjectSizeOpts Opts)

    Like getObjectSize(), but only returns the size of base objects (like

    allocas, global variables and allocator calls) and std::nullopt otherwise.

    Requires ExactSizeFromOffset mode.

    Defined at line 592 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • int getLazyBitcodeModule (MemoryBufferRef Buffer, LLVMContext & Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks)

    Read the header of the specified bitcode buffer and prepare for lazy

    deserialization of function bodies. If ShouldLazyLoadMetadata is true,

    lazily load metadata as well. If IsImporting is true, this module is

    being parsed for ThinLTO importing into another module.

    Defined at line 8708 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • DynamicAPInt lcm (const DynamicAPInt & A, const DynamicAPInt & B)

    Returns the least common multiple of A and B.

    Defined at line 413 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • FunctionPass * createBasicAAWrapperPass ()

    Defined at line 2038 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • VectorType * getDeinterleavedVectorType (IntrinsicInst * DI)

    Given a deinterleaveN intrinsic, return the (narrow) vector type of each

    factor.

    Defined at line 293 of file llvm/lib/Analysis/VectorUtils.cpp

  • FunctionPass * createX86WinEHUnwindV2Pass ()

    // Analyzes and emits pseudos to support Win x64 Unwind V2.

    Defined at line 80 of file llvm/lib/Target/X86/X86WinEHUnwindV2.cpp

  • DynamicAPInt mod (const DynamicAPInt & LHS, const DynamicAPInt & RHS)

    The RHS is always expected to be positive, and the result

    is always non-negative.

    Defined at line 395 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • raw_ostream & operator<< (raw_ostream & OS, const ILPValue & Val)

    Defined at line 1555 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • void initializeLowerSwitchLegacyPassPass (PassRegistry & )

    Defined at line 588 of file llvm/lib/Transforms/Utils/LowerSwitch.cpp

  • Value * simplifyExtractElementInst (Value * Vec, Value * Idx, const SimplifyQuery & Q)

    Given operands for an ExtractElementInst, fold the result or return null.

    Defined at line 5445 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • ConversionResult ConvertUTF32toUTF8 (const UTF32 ** sourceStart, const UTF32 * sourceEnd, UTF8 ** targetStart, UTF8 * targetEnd, ConversionFlags flags)

    ---------------------------------------------------------------------

    Defined at line 333 of file llvm/lib/Support/ConvertUTF.cpp

  • void initializeMIRCanonicalizerPass (PassRegistry & )

    Defined at line 73 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • void initializeMIRNamerPass (PassRegistry & )

    Defined at line 64 of file llvm/lib/CodeGen/MIRNamerPass.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const VPRecipeBase & R)

    Defined at line 73 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • void CloneFunctionAttributesInto (Function * NewFunc, const Function * OldFunc, int & VMap, bool ModuleLevelChanges, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)

    Clone OldFunc's attributes into NewFunc, transforming values based on the

    mappings in VMap.

    Defined at line of file

  • void initializeMachineBranchProbabilityInfoWrapperPassPass (PassRegistry & )

    Defined at line 21 of file llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp

  • void initializeMachineCycleInfoWrapperPassPass (PassRegistry & )

    Defined at line 31 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp

  • void initializeMachineDominanceFrontierPass (PassRegistry & )

    Defined at line 30 of file llvm/lib/CodeGen/MachineDominanceFrontier.cpp

  • void initializeMachineFunctionPrinterPassPass (PassRegistry & )

    Defined at line 60 of file llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp

  • void CloneFunctionMetadataInto (Function & NewFunc, const Function & OldFunc, int & VMap, RemapFlags RemapFlag, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Clone OldFunc's metadata into NewFunc.

    The caller is expected to populate

    beforehand and set an appropriate

    Subprograms/CUs/types that were already mapped to themselves

    won't be duplicated.

    NOTE: This function doesn't clone !llvm.dbg.cu when cloning into a different

    module. Use CloneFunctionInto for that behavior.

    Defined at line of file

  • void initializeMachineLoopInfoWrapperPassPass (PassRegistry & )

    Defined at line 60 of file llvm/lib/CodeGen/MachineLoopInfo.cpp

  • void __morestack ()

    Defined at line of file

  • AllocaInst * DemoteRegToStack (Instruction & X, bool VolatileLoads, optional AllocaPoint)

    DemoteRegToStack - This function takes a virtual register computed by an

    Instruction and replaces it with a slot in the stack frame, allocated via

    alloca. This allows the CFG to be changed around without fear of

    invalidating the SSA information for the value. It returns the pointer to

    the alloca inserted to create a stack slot for I.

    Defined at line 23 of file llvm/lib/Transforms/Utils/DemoteRegToStack.cpp

  • AllocaInst * DemoteRegToStack (Instruction & X, bool VolatileLoads, int AllocaPoint)

    This function takes a virtual register computed by an Instruction and

    replaces it with a slot in the stack frame, allocated via alloca.

    This allows the CFG to be changed around without fear of invalidating the

    SSA information for the value. It returns the pointer to the alloca inserted

    to create a stack slot for X.

    Defined at line of file

  • std::optional<llvm::StringMap<bool>> getCPUDefaultTargetFeatures (StringRef CPU, ArrayRef<BasicSubtargetSubTypeKV> ProcDesc, ArrayRef<BasicSubtargetFeatureKV> ProcFeatures)

    Defined at line 44 of file llvm/lib/TargetParser/TargetParser.cpp

  • void CloneFunctionBodyInto (Function & NewFunc, const Function & OldFunc, int & VMap, RemapFlags RemapFlag, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Clone OldFunc's body into NewFunc.

    Defined at line of file

  • void initializeMachinePostDominatorTreeWrapperPassPass (PassRegistry & )

    declare initializeMachinePostDominatorTreePass

    Defined at line 65 of file llvm/lib/CodeGen/MachinePostDominators.cpp

  • void initializeMachineSanitizerBinaryMetadataLegacyPass (PassRegistry & )

    Defined at line 46 of file llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp

  • AllocaInst * DemotePHIToStack (PHINode * P, int AllocaPoint)

    This function takes a virtual register computed by a phi node and replaces

    it with a slot in the stack frame, allocated via alloca. The phi node is

    deleted and it returns the pointer to the alloca inserted.

    Defined at line of file

  • hash_code hash_value (const DynamicAPInt & x)

    Redeclarations of friend declaration above to

    make it discoverable by lookups.

    Defined at line 15 of file llvm/lib/Support/DynamicAPInt.cpp

  • FunctionPass * createX86ArgumentStackSlotPass ()

    Defined at line 59 of file llvm/lib/Target/X86/X86ArgumentStackSlotRebase.cpp

  • void dumpCOFFImportFile (const object::COFFImportFile * File, ScopedPrinter & Writer)

    Defined at line 23 of file llvm/tools/llvm-readobj/COFFImportDumper.cpp

  • void CloneAndPruneIntoFromInst (Function * NewFunc, const Function * OldFunc, const Instruction * StartingInst, int & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)

    Defined at line of file

  • FunctionPass * createX86SuppressAPXForRelocationPass ()

    Defined at line 62 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • void initializeMachineTraceMetricsWrapperPassPass (PassRegistry & )

    Defined at line 61 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • void initializeX86ArgumentStackSlotPassPass (PassRegistry & )

    Defined at line 56 of file llvm/lib/Target/X86/X86ArgumentStackSlotRebase.cpp

  • bool ConvertUTF8toWide (unsigned int WideCharWidth, StringRef Source, char *& ResultPtr, const UTF8 *& ErrorPtr)

    Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on

    WideCharWidth. The converted data is written to ResultPtr, which needs to

    point to at least WideCharWidth * (Source.Size() + 1) bytes. On success,

    ResultPtr will point one after the end of the copied string. On failure,

    ResultPtr will not be changed, and ErrorPtr will be set to the location of

    the first character which could not be converted.

    Returns

    true on success.

    Defined at line 18 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • void initializeMemorySSAWrapperPassPass (PassRegistry & )

    Defined at line 72 of file llvm/lib/Analysis/MemorySSA.cpp

  • void initializeX86FixupInstTuningPassPass (PassRegistry & )

    Defined at line 64 of file llvm/lib/Target/X86/X86FixupInstTuning.cpp

  • void initializeX86FixupVectorConstantsPassPass (PassRegistry & )

    Defined at line 60 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • void initializeX86AvoidTrailingCallLegacyPassPass (PassRegistry & )

    Defined at line 70 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp

  • void initializeOptimizePHIsLegacyPass (PassRegistry & )

    Defined at line 78 of file llvm/lib/CodeGen/OptimizePHIs.cpp

  • void CloneAndPruneFunctionInto (Function * NewFunc, const Function * OldFunc, int & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)

    This works exactly like CloneFunctionInto,

    except that it does some simple constant prop and DCE on the fly. The

    effect of this is to copy significantly less code in cases where (for

    example) a function call with constant arguments is inlined, and those

    constant arguments cause a significant amount of code in the callee to be

    dead. Since this doesn't produce an exactly copy of the input, it can't be

    used for things like CloneFunction or CloneModule.

    If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue

    mappings.

    Defined at line of file

  • StatepointDirectives parseStatepointDirectivesFromAttrs (AttributeList AS)

    Parse out statepoint directives from the function attributes present in

    Defined at line 23 of file llvm/lib/IR/Statepoint.cpp

  • bool isStatepointDirectiveAttr (Attribute Attr)

    Return

    if the

    is an attribute that is a statepoint

    directive.

    Defined at line 18 of file llvm/lib/IR/Statepoint.cpp

  • void initializeX86FastTileConfigPass (PassRegistry & )

    Defined at line 77 of file llvm/lib/Target/X86/X86FastTileConfig.cpp

  • void initializePhysicalRegisterUsageInfoWrapperLegacyPass (PassRegistry & )

    Defined at line 37 of file llvm/lib/CodeGen/RegisterUsageInfo.cpp

  • unsigned int getULEB128Size (uint64_t Value)

    Utility function to get the size of the ULEB128-encoded value.

    Defined at line 19 of file llvm/lib/Support/LEB128.cpp

  • void initializeX86FixupSetCCPassPass (PassRegistry & )

    Defined at line 63 of file llvm/lib/Target/X86/X86FixupSetCC.cpp

  • unsigned int getSLEB128Size (int64_t Value)

    Utility function to get the size of the SLEB128-encoded value.

    Defined at line 29 of file llvm/lib/Support/LEB128.cpp

  • void initializePostDominatorTreeWrapperPassPass (PassRegistry & )

    Defined at line 40 of file llvm/lib/Analysis/PostDominators.cpp

  • void initializeX86LowerTileCopyPass (PassRegistry & )

    Defined at line 60 of file llvm/lib/Target/X86/X86LowerTileCopy.cpp

  • void initializeX86PartialReductionLegacyPass (PassRegistry & )

    Defined at line 71 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • void initializePostRAHazardRecognizerLegacyPass (PassRegistry & )

    Defined at line 69 of file llvm/lib/CodeGen/PostRAHazardRecognizer.cpp

  • void initializeX86SuppressAPXForRelocationPassPass (PassRegistry & )

    Defined at line 59 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • void initializeProcessImplicitDefsLegacyPass (PassRegistry & )

    Defined at line 65 of file llvm/lib/CodeGen/ProcessImplicitDefs.cpp

  • bool ConvertCodePointToUTF8 (unsigned int Source, char *& ResultPtr)

    Convert an Unicode code point to UTF8 sequence.

    Parameters

    Source a Unicode code point.
    ResultPtr [in,out] pointer to the output buffer, needs to be at least bytes. On success is updated one past end of the converted sequence.

    Defined at line 64 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • basic_string getPassesString (const std::vector<std::string> & Passes)

    getPassesString - Turn a list of passes into a string which indicates the

    command line options that must be passed to add the passes.

    Defined at line 61 of file llvm/tools/bugpoint/BugDriver.cpp

  • void initializeRABasicPass (PassRegistry & )

    Defined at line 59 of file llvm/lib/CodeGen/RegAllocBasic.cpp

  • FPClassTest fneg (FPClassTest Mask)

    Return the test mask which returns true if the value's sign bit is flipped.

    Defined at line 14 of file llvm/lib/Support/FloatingPointMode.cpp

  • void initializeReachingDefInfoWrapperPassPass (PassRegistry & )

    Defined at line 45 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • void initializeRegAllocEvictionAdvisorAnalysisLegacyPass (PassRegistry & )

    Defined at line 65 of file llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp

  • FPClassTest inverse_fabs (FPClassTest Mask)

    Return the test mask which returns true after fabs is applied to the value.

    Defined at line 35 of file llvm/lib/Support/FloatingPointMode.cpp

  • void initializeRegAllocPriorityAdvisorAnalysisLegacyPass (PassRegistry & )

    Defined at line 39 of file llvm/lib/CodeGen/RegAllocPriorityAdvisor.cpp

  • FPClassTest unknown_sign (FPClassTest Mask)

    Return the test mask which returns true if the value could have the same set

    of classes, but with a different sign.

    Defined at line 48 of file llvm/lib/Support/FloatingPointMode.cpp

  • void initializeRegBankSelectPass (PassRegistry & )

    Defined at line 69 of file llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp

  • void initializeRemoveRedundantDebugValuesLegacyPass (PassRegistry & )

    Defined at line 65 of file llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp

  • void initializeRuntimeLibraryInfoWrapperPass (PassRegistry & )

    Defined at line 32 of file llvm/lib/Analysis/RuntimeLibcallInfo.cpp

  • void RemapSourceAtom (Instruction * I, int & VM)

    Remap source location atom. Called by RemapInstruction. This updates the

    instruction's atom group number if it has been mapped (e.g. with

    llvm::mapAtomInstance), which is necessary to distinguish source code

    atoms on duplicated code paths.

    Defined at line of file

  • raw_ostream & operator<< (raw_ostream & OS, MemoryEffectsBase RMRB)

    Debug print MemoryEffects.

    Defined at line 37 of file llvm/lib/Support/ModRef.cpp

  • void initializeSlotIndexesWrapperPassPass (PassRegistry & )

    Defined at line 47 of file llvm/lib/CodeGen/SlotIndexes.cpp

  • void initializeSpillPlacementWrapperLegacyPass (PassRegistry & )

    Defined at line 54 of file llvm/lib/CodeGen/SpillPlacement.cpp

  • BasicBlock * SplitBlock (BasicBlock * Old, int SplitPt, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Split the specified block at the specified instruction.

    If

    is true, splitBlockBefore handles the block

    splitting. Otherwise, execution proceeds as described below.

    Everything before

    stays in

    and everything starting with

    moves to a new block. The two blocks are joined by an unconditional

    branch. The new block with name

    is returned.

    FIXME: deprecated, switch to the DomTreeUpdater-based one.

    Defined at line of file

  • bool operator< (const BranchView & LHS, const BranchView & RHS)

    Defined at line 73 of file llvm/tools/llvm-cov/SourceCoverageView.h

  • bool isVectorizedTy (Type * Ty)

    Returns true if `Ty` is a vector type or a struct of vector types where all

    vector types share the same VF.

    Defined at line 73 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedMulAdd (T A, T B, T C)

    Multiply A and B, and add C to the resulting product.

    Returns

    Optional of result if no signed overflow occurred,

    otherwise.

    Defined at line 73 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    int checkedMulAdd (T A, T B, T C)

    Multiply A and B, and add C to the resulting product.

    Returns

    Optional of result if no signed overflow occurred,

    otherwise.

    Defined at line 73 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <class S1Ty, class S2Ty>
    S1Ty set_intersection_impl (const S1Ty & S1, const S2Ty & S2)

    Defined at line 73 of file llvm/include/llvm/ADT/SetOperations.h

  • void InitializeAllTargets ()

    InitializeAllTargets - The main program should call this function if it

    wants access to all available target machines that LLVM is configured to

    support, to make them available via the TargetRegistry.

    It is legal for a client to make multiple calls to this function.

    Defined at line 73 of file llvm/include/llvm/Support/TargetSelect.h

  • template <typename BlockTOrBlockFreq, typename BFIT>
    bool shouldOptimizeForSizeImpl (BlockTOrBlockFreq BBOrBlockFreq, ProfileSummaryInfo * PSI, BFIT * BFI, PGSOQueryType QueryType)

    Defined at line 73 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h

  • template <class T>
    void format (const T & Fractional, struct tm & LT, raw_ostream & OS, StringRef Style)

    Defined at line 73 of file llvm/lib/Support/Chrono.cpp

  • void initializeX86TileConfigPass (PassRegistry & )

    Defined at line 74 of file llvm/lib/Target/X86/X86TileConfig.cpp

  • template <typename T>
    iterator_range<T> make_range (std::pair<T, T> p)

    Defined at line 74 of file llvm/include/llvm/ADT/iterator_range.h

  • template <typename GenT, typename RangeT, typename ElT>
    ReservoirSampler<ElT, GenT> makeSampler (GenT & RandGen, RangeT && Items)

    Defined at line 75 of file llvm/include/llvm/FuzzMutate/Random.h

  • template <typename Int>
    bool isValidAtomicOrdering (Int I)

    Validate an integral value which isn't known to fit within the enum's range

    is a valid AtomicOrdering.

    Defined at line 75 of file llvm/include/llvm/Support/AtomicOrdering.h

  • raw_ostream & operator<< (raw_ostream & OS, const ARM::WinEH::ReturnType & RT)

    Defined at line 75 of file llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp

  • DenseMap writeMemProfFrameArray (ProfOStream & OS, llvm::MapVector<memprof::FrameId, memprof::Frame> & MemProfFrameData, llvm::DenseMap<memprof::FrameId, memprof::FrameStat> & FrameHistogram)

    Serialize MemProfFrameData. Return the mapping from FrameIds to their

    indexes within the frame array.

    Defined at line 75 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • void initializeX86WinEHUnwindV2Pass (PassRegistry & )

    Defined at line 76 of file llvm/lib/Target/X86/X86WinEHUnwindV2.cpp

  • template <typename Range>
    InterleavedRange<Range> interleaved (const Range & R, StringRef Separator, StringRef Prefix, StringRef Suffix)

    Output range `R` as a sequence of interleaved elements. Requires the range

    element type to be printable using `raw_ostream

    &

    operator

    <

    <

    `. The

    `Separator` and `Prefix` / `Suffix` can be customized. Examples:

    ```c++

    SmallVector

    <int

    > Vals = {1, 2, 3};

    OS

    <

    <

    interleaved(Vals); // ==> "1, 2, 3"

    OS

    <

    <

    interleaved(Vals, ";"); // ==> "1;2;3"

    OS

    <

    <

    interleaved(Vals, " ", "{", "}"); // ==> "{1 2 3}"

    ```

    Defined at line 76 of file llvm/include/llvm/Support/InterleavedRange.h

  • error_code restoreStdHandleAutoConversion (int FD)

    Defined at line 76 of file llvm/include/llvm/Support/AutoConvert.h

  • bool operator< (const DWARFAddressRange & LHS, const DWARFAddressRange & RHS)

    Defined at line 77 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h

  • bool internalizeModule (Module & TheModule, std::function<bool (const GlobalValue &)> MustPreserveGV)

    Helper function to internalize functions and variables in a Module.

    Defined at line 77 of file llvm/include/llvm/Transforms/IPO/Internalize.h

  • template <typename T>
    T maskTrailingOnes (unsigned int N)

    Create a bitmask with the N right-most bits set to 1, and all other

    bits set to 0. Only unsigned types are allowed.

    Defined at line 77 of file llvm/include/llvm/Support/MathExtras.h

  • template <class BlockT, class LoopT>
    std::pair<BlockT *, bool> getExitBlockHelper (const LoopBase<BlockT, LoopT> * L, bool Unique)

    getExitBlock - If getExitBlocks would return exactly one block,

    return that block. Otherwise return null.

    Defined at line 77 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • template <typename RangeT>
    decltype(adl_detail::begin_impl(std::forward<RangeT>(range))) adl_begin (RangeT && range)

    Returns the begin iterator to

    using `std::begin` and

    function found through Argument-Dependent Lookup (ADL).

    Defined at line 78 of file llvm/include/llvm/ADT/ADL.h

  • bool hasUTF16ByteOrderMark (ArrayRef SrcBytes)

    Returns true if a blob of text starts with a UTF-16 big or little endian byte

    order mark.

    Defined at line 78 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • tuple fcmpImpliesClass (Predicate Pred, const Function & F, Value * LHS, Value * RHS, bool LookThroughSrc)

    Defined at line 78 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h

  • void initializeMIRPrintingPassPass (PassRegistry & )

    Defined at line 80 of file llvm/lib/CodeGen/MIRPrintingPass.cpp

  • void initializeMachineCFGPrinterPass (PassRegistry & )

    Defined at line 79 of file llvm/lib/CodeGen/MachineCFGPrinter.cpp

  • unsigned int encodeULEB128 (uint64_t Value, raw_ostream & OS, unsigned int PadTo)

    Utility function to encode a ULEB128 value to an output stream. Returns

    the length in bytes of the encoded value.

    Defined at line 79 of file llvm/include/llvm/Support/LEB128.h

  • bool canRoundingModeBe (RoundingMode RM, RoundingMode QRM)

    Returns true if the rounding mode RM may be QRM at compile time or

    at run time.

    Defined at line 80 of file llvm/include/llvm/IR/FPEnv.h

  • template <size_t N, class CostType>
    const TypeConversionCostTblEntryT<CostType> * ConvertCostTableLookup (const TypeConversionCostTblEntryT<CostType> (&)[N] Table, int ISD, MVT Dst, MVT Src)

    Defined at line 80 of file llvm/include/llvm/CodeGen/CostTable.h

  • Model getEffectiveCodeModel (std::optional<CodeModel::Model> CM, Model Default)

    Helper method for getting the code model, returning Default if

    CM does not have a value. The tiny and kernel models will produce

    an error, so targets that support them or require more complex codemodel

    selection logic should implement and call their own getEffectiveCodeModel.

    Defined at line 80 of file llvm/include/llvm/CodeGen/CodeGenTargetMachineImpl.h

  • vector findIndirectCalls (Function & F)

    Defined at line 81 of file llvm/include/llvm/Analysis/IndirectCallVisitor.h

  • bool isScopedEHPersonality (EHPersonality Pers)

    Returns true if this personality uses scope-style EH IR instructions:

    catchswitch, catchpad/ret, and cleanuppad/ret.

    Defined at line 81 of file llvm/include/llvm/IR/EHPersonalities.h

  • unsigned int hexDigitValue (char C)

    Interpret the given character

    as a hexadecimal digit and return its

    value.

    If

    is not a valid hex digit, -1U is returned.

    Defined at line 81 of file llvm/include/llvm/ADT/StringExtras.h

  • void dumpSectionMemory (const SectionEntry & S, StringRef State)

    Defined at line 81 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • bool isArm64ECMangledFunctionName (StringRef Name)

    Check if an ARM64EC function name is mangled.

    Defined at line 82 of file llvm/include/llvm/IR/Mangler.h

  • unsigned int getNumFSPasses ()

    Return the number of FS passes, excluding the pass adding the base

    discriminators.

    The number of passes for FS discriminators. Note that the total

    number of discriminaitor bits, i.e.

    BaseDiscriminatorBitWidth

    + FSDiscriminatorBitWidth * getNumFSPasses()

    needs to fit in an unsigned int type.

    Defined at line 82 of file llvm/include/llvm/Support/Discriminator.h

  • error_code make_error_code (errc E)

    Defined at line 82 of file llvm/include/llvm/Support/Errc.h

  • bool operator== (const DWARFAddressRange & LHS, const DWARFAddressRange & RHS)

    Defined at line 82 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h

  • template <typename GenT, typename T>
    ReservoirSampler<T, GenT> makeSampler (GenT & RandGen, const T & Item, uint64_t Weight)

    Defined at line 82 of file llvm/include/llvm/FuzzMutate/Random.h

  • const char * toIRString (AtomicOrdering ao)

    String used by LLVM IR to represent atomic ordering.

    Defined at line 82 of file llvm/include/llvm/Support/AtomicOrdering.h

  • unique_ptr createMachODumper (const object::MachOObjectFile & Obj, ScopedPrinter & Writer)

    Defined at line 83 of file llvm/tools/llvm-readobj/MachODumper.cpp

  • void initializeX86DynAllocaExpanderLegacyPass (PassRegistry & )

    Defined at line 83 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp

  • void initializePatchableFunctionLegacyPass (PassRegistry & )

    Defined at line 83 of file llvm/lib/CodeGen/PatchableFunction.cpp

  • void initializeRegUsageInfoCollectorLegacyPass (PassRegistry & )

    Defined at line 79 of file llvm/lib/CodeGen/RegUsageInfoCollector.cpp

  • void initializeRemoveLoadsIntoFakeUsesLegacyPass (PassRegistry & )

    Defined at line 80 of file llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp

  • void initializeTailDuplicateLegacyPass (PassRegistry & )

    Defined at line 81 of file llvm/lib/CodeGen/TailDuplication.cpp

  • template <class S1Ty, class S2Ty>
    S1Ty set_intersection (const S1Ty & S1, const S2Ty & S2)

    set_intersection(A, B) - Return A ^ B

    Defined at line 83 of file llvm/include/llvm/ADT/SetOperations.h

  • bool isHeuristicInlineCostFeature (InlineCostFeatureIndex Feature)

    Defined at line 83 of file llvm/include/llvm/Analysis/InlineModelFeatureMaps.h

  • void validateCommandLine ()

    Validate the command line input.

    Defined at line 83 of file llvm/tools/llvm-profgen/llvm-profgen.cpp

  • bool convertUTF16ToUTF8String (ArrayRef SrcBytes, std::string & Out)

    Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.

    Parameters

    SrcBytes [in] A buffer of what is assumed to be UTF-16 encoded text.
    Out [out] Converted UTF-8 is stored here on success.

    Defined at line 83 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • template <typename T>
    std::enable_if_t<std::is_unsigned_v<T>, std::optional<T>> checkedAddUnsigned (T LHS, T RHS)

    Add two unsigned integers

    and

    Returns

    Optional of sum if no unsigned overflow occurred,

    otherwise.

    Defined at line 84 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    int checkedAddUnsigned (T LHS, T RHS)

    Add two unsigned integers

    and

    Returns

    Optional of sum if no unsigned overflow occurred,

    otherwise.

    Defined at line 84 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • error_code setFileTag (int FD, int CCSID, bool Text)

    Defined at line 84 of file llvm/include/llvm/Support/AutoConvert.h

  • int MCLOHIdToNbArgs (MCLOHType Kind)

    Defined at line 84 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h

  • void initializeX86ExpandPseudoPass (PassRegistry & )

    Defined at line 85 of file llvm/lib/Target/X86/X86ExpandPseudo.cpp

  • void initializeScalarizeMaskedMemIntrinLegacyPassPass (PassRegistry & )

    Defined at line 85 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RegisterBank & RegBank)

    Defined at line 85 of file llvm/include/llvm/CodeGen/RegisterBank.h

  • bool canVectorizeTy (Type * Ty)

    Returns true if `Ty` is a valid vector element type, void, or an unpacked

    literal struct where all elements are valid vector element types.

    Note: Even if a type can be vectorized that does not mean it is valid to do

    so in all cases. For example, a vectorized struct (as returned by

    toVectorizedTy) does not perform (de)interleaving, so it can't be used for

    vectorizing loads/stores.

    Defined at line 85 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • raw_ostream & WriteGraph (raw_ostream & O, const EdgeBundles & G, bool ShortNames, const Twine & Title)

    Specialize WriteGraph, the standard implementation won't work.

    Defined at line 85 of file llvm/lib/CodeGen/EdgeBundles.cpp

  • void initializeStackMapLivenessPass (PassRegistry & )

    Defined at line 86 of file llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp

  • bool canIgnoreSNaN (ExceptionBehavior EB, FastMathFlags FMF)

    Returns true if the possibility of a signaling NaN can be safely

    ignored.

    Defined at line 86 of file llvm/include/llvm/IR/FPEnv.h

  • template <typename RangeT>
    decltype(adl_detail::end_impl(std::forward<RangeT>(range))) adl_end (RangeT && range)

    Returns the end iterator to

    using `std::end` and

    functions found through Argument-Dependent Lookup (ADL).

    Defined at line 86 of file llvm/include/llvm/ADT/ADL.h

  • bool operator== (const line_iterator & LHS, const line_iterator & RHS)

    Defined at line 86 of file llvm/include/llvm/Support/LineIterator.h

  • void InitializeAllTargetMCs ()

    InitializeAllTargetMCs - The main program should call this function if it

    wants access to all available target MC that LLVM is configured to

    support, to make them available via the TargetRegistry.

    It is legal for a client to make multiple calls to this function.

    Defined at line 86 of file llvm/include/llvm/Support/TargetSelect.h

  • X86AddressMode getAddressFromInstr (const MachineInstr * MI, unsigned int Operand)

    Compute the addressing mode from an machine instruction starting with the

    given operand.

    Defined at line 86 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • template <typename Function, typename... Args>
    void call_once (once_flag & flag, Function && F, Args &&... ArgList)

    Execute the function specified as a parameter once.

    Typical usage:

    Parameters

    flag Flag used for tracking whether or not this has run.
    F Function to call once.

    Code

                                                    
                                                           void foo() {...};
                                                           ...
                                                           static once_flag flag;
                                                           call_once(flag, foo);
                                                    
                                                

    Defined at line 86 of file llvm/include/llvm/Support/Threading.h

  • unsigned int getFSPassBitEnd (FSDiscriminatorPass P)

    Return the ending bit for FSPass P.

    Defined at line 87 of file llvm/include/llvm/Support/Discriminator.h

  • bool operator!= (const NodeType & M, const NodeType & N)

    Defined at line 88 of file llvm/include/llvm/ADT/DirectedGraph.h

  • template <typename T>
    T maskLeadingOnes (unsigned int N)

    Create a bitmask with the N left-most bits set to 1, and all other

    bits set to 0. Only unsigned types are allowed.

    Defined at line 88 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator< (const MCDCView & LHS, const MCDCView & RHS)

    Defined at line 88 of file llvm/tools/llvm-cov/SourceCoverageView.h

  • vector findVTableAddrs (Function & F)

    Defined at line 88 of file llvm/include/llvm/Analysis/IndirectCallVisitor.h

  • void initializeMachineCycleInfoPrinterLegacyPass (PassRegistry & )

    Defined at line 89 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp

  • FunctionPass * createScalarizeMaskedMemIntrinLegacyPass ()

    ===----------------------------------------------------------------------===//

    createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather

    and scatter intrinsics with scalar code when target doesn't support them.

    Defined at line 89 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • unique_ptr parseInputFile (StringRef InputFilename, LLVMContext & ctxt)

    Given a bitcode or assembly input filename, parse and return it, or return

    null if not possible.

    Defined at line 86 of file llvm/tools/bugpoint/BugDriver.cpp

  • raw_ostream & operator<< (raw_ostream & OS, FPClassTest Mask)

    Write a human readable form of

    to

    Defined at line 86 of file llvm/lib/Support/FloatingPointMode.cpp

  • void initializeRegUsageInfoPropagationLegacyPass (PassRegistry & )

    Defined at line 90 of file llvm/lib/CodeGen/RegUsageInfoPropagate.cpp

  • void initializeResetMachineFunctionPass (PassRegistry & )

    Defined at line 89 of file llvm/lib/CodeGen/ResetMachineFunctionPass.cpp

  • template <typename T>
    support::detail::AlignAdapter<T> fmt_align (T && Item, AlignStyle Where, size_t Amount, char Fill)

    Defined at line 89 of file llvm/include/llvm/Support/FormatAdapters.h

  • void shortenFileName (std::string & FN, unsigned char len)

    Defined at line 89 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h

  • bool operator== (const hash_code & lhs, const hash_code & rhs)

    Defined at line 90 of file llvm/include/llvm/ADT/Hashing.h

  • template <typename T, typename GenT>
    ReservoirSampler<T, GenT> makeSampler (GenT & RandGen)

    Defined at line 90 of file llvm/include/llvm/FuzzMutate/Random.h

  • bool operator< (const IntrinsicData & LHS, unsigned int Id)

    Defined at line 90 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h

  • template <typename To, typename From, typename = std::enable_if_t<sizeof(To) == sizeof(From)>, typename = std::enable_if_t<std::is_trivially_constructible<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<From>::value>>
    To bit_cast (const From & from)

    This implementation of bit_cast is different from the C++20 one in two ways:

    - It isn't constexpr because that requires compiler support.

    - It requires trivially-constructible To, to avoid UB in the implementation.

    Defined at line 90 of file llvm/include/llvm/ADT/bit.h

  • int compileModuleWithNewPM (StringRef Arg0, int M, int MIR, int Target, int Out, int DwoOut, LLVMContext & Context, const TargetLibraryInfoImpl & TLII, VerifierKind VK, StringRef PassPipeline, CodeGenFileType FileType)

    Defined at line 90 of file llvm/tools/llc/NewPMDriver.cpp

  • void initializeStaticDataAnnotatorPass (PassRegistry & )

    Defined at line 91 of file llvm/lib/CodeGen/StaticDataAnnotator.cpp

  • bool operator!= (const line_iterator & LHS, const line_iterator & RHS)

    Defined at line 91 of file llvm/include/llvm/Support/LineIterator.h

  • raw_ostream & operator<< (raw_ostream & OS, const VNInfo & VNI)

    Defined at line 91 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • ErrorOr needConversion (const Twine & FileName, const int FD)

    Defined at line 91 of file llvm/include/llvm/Support/AutoConvert.h

  • bool isStrongerThan (AtomicOrdering AO, AtomicOrdering Other)

    Returns true if ao is stronger than other as defined by the AtomicOrdering

    lattice, which is based on C++'s definition.

    Defined at line 91 of file llvm/include/llvm/Support/AtomicOrdering.h

  • template <typename Range>
    InterleavedRange<Range> interleaved_array (const Range & R, StringRef Separator)

    Output range `R` as an array of interleaved elements. Requires the range

    element type to be printable using `raw_ostream

    &

    operator

    <

    <

    `. The

    `Separator` can be customized. Examples:

    ```c++

    SmallVector

    <int

    > Vals = {1, 2, 3};

    OS

    <

    <

    interleaved_array(Vals); // ==> "[1, 2, 3]"

    OS

    <

    <

    interleaved_array(Vals, ";"); // ==> "[1;2;3]"

    OS

    <

    <

    interleaved_array(Vals, " "); // ==> "[1 2 3]"

    ```

    Defined at line 92 of file llvm/include/llvm/Support/InterleavedRange.h

  • Printable PrintLaneMask (LaneBitmask LaneMask)

    Create Printable object to print LaneBitmasks on a

    Defined at line 92 of file llvm/include/llvm/MC/LaneBitmask.h

  • GVDAGType getGVDT ()

    Defined at line 92 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp

  • bool operator!= (const hash_code & lhs, const hash_code & rhs)

    Defined at line 93 of file llvm/include/llvm/ADT/Hashing.h

  • template <typename T>
    int checkedMulUnsigned (T LHS, T RHS)

    Multiply two unsigned integers

    and

    Returns

    Optional of product if no unsigned overflow occurred,

    otherwise.

    Defined at line 93 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    std::enable_if_t<std::is_unsigned_v<T>, std::optional<T>> checkedMulUnsigned (T LHS, T RHS)

    Multiply two unsigned integers

    and

    Returns

    Optional of product if no unsigned overflow occurred,

    otherwise.

    Defined at line 93 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • ArrayRef getContainedTypes (Type *const & Ty)

    Returns the types contained in `Ty`. For struct types, it returns the

    elements, all other types are returned directly.

    Defined at line 93 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • template <class S1Ty, class S2Ty>
    S1Ty set_difference (const S1Ty & S1, const S2Ty & S2)

    set_difference(A, B) - Return A - B

    Defined at line 93 of file llvm/include/llvm/ADT/SetOperations.h

  • void initializeMachineDominatorTreeWrapperPassPass (PassRegistry & )

    Defined at line 94 of file llvm/lib/CodeGen/MachineDominators.cpp

  • void initializeMachineLateInstrsCleanupLegacyPass (PassRegistry & )

    Defined at line 94 of file llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp

  • template <typename T>
    T maskTrailingZeros (unsigned int N)

    Create a bitmask with the N right-most bits set to 0, and all other

    bits set to 1. Only unsigned types are allowed.

    Defined at line 94 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename RangeT>
    decltype(adl_detail::rbegin_impl(std::forward<RangeT>(range))) adl_rbegin (RangeT && range)

    Returns the reverse-begin iterator to

    using `std::rbegin` and

    function found through Argument-Dependent Lookup (ADL).

    Defined at line 94 of file llvm/include/llvm/ADT/ADL.h

  • unsigned int getFSPassBitBegin (FSDiscriminatorPass P)

    Return the begining bit for FSPass P.

    Defined at line 94 of file llvm/include/llvm/Support/Discriminator.h

  • template <class T>
    basic_string to_string (const T & Value)

    Defined at line 95 of file llvm/include/llvm/Support/ScopedPrinter.h

  • template <typename T>
    support::detail::PadAdapter<T> fmt_pad (T && Item, size_t Left, size_t Right)

    Defined at line 96 of file llvm/include/llvm/Support/FormatAdapters.h

  • void InitializeAllAsmPrinters ()

    InitializeAllAsmPrinters - The main program should call this function if

    it wants all asm printers that LLVM is configured to support, to make them

    available via the TargetRegistry.

    It is legal for a client to make multiple calls to this function.

    Defined at line 96 of file llvm/include/llvm/Support/TargetSelect.h

  • unsigned short computeExpressionSize (ArrayRef Args)

    Defined at line 96 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h

  • void exportDebugifyStats (StringRef Path, const int & Map)

    Defined at line of file

  • ConstantRange getRange (Value * Op, SCCPSolver & Solver, const SmallPtrSetImpl<Value *> & InsertedValues)

    Helper for getting ranges from

    Instructions inserted during

    simplification are unavailable in the solver, so we return a full range for

    them.

    Defined at line 96 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • uint64_t getInstrMaxCountValue ()

    Return the max count value. We reserver a few large values for special use.

    Defined at line 97 of file llvm/include/llvm/ProfileData/InstrProf.h

  • bool isNoOpWithoutInvoke (EHPersonality Pers)

    Return true if this personality may be safely removed if there

    are no invoke instructions remaining in the current function.

    Defined at line 97 of file llvm/include/llvm/IR/EHPersonalities.h

  • size_t hash_value (const hash_code & code)

    Allow a hash_code to be directly run through hash_value.

    Defined at line 98 of file llvm/include/llvm/ADT/Hashing.h

  • BasicBlock * SplitCriticalEdge (Instruction * TI, unsigned int SuccNum, const CriticalEdgeSplittingOptions & Options, const Twine & BBName)

    If this edge is a critical edge, insert a new node to split the critical

    edge. This will update the analyses passed in through the option struct.

    This returns the new block if the edge was split, null otherwise.

    If MergeIdenticalEdges in the options struct is true (not the default),

    *all* edges from TI to the specified successor will be merged into the same

    critical edge block. This is most commonly interesting with switch

    instructions, which may have many edges to any one destination. This

    ensures that all edges to that dest go to one block instead of each going

    to a different block, but isn't the standard definition of a "critical

    edge".

    It is invalid to call this function on a critical edge that starts at an

    IndirectBrInst. Splitting these edges will almost always create an invalid

    program because the address of the new block won't be the one that is jumped

    to.

    Defined at line 102 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • void initializeX86FastPreTileConfigPass (PassRegistry & )

    Defined at line 98 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • void initializeX86ReturnThunksPass (PassRegistry & )

    Defined at line 97 of file llvm/lib/Target/X86/X86ReturnThunks.cpp

  • void initializeSjLjEHPreparePass (PassRegistry & )

    Defined at line 98 of file llvm/lib/CodeGen/SjLjEHPrepare.cpp

  • std::optional<PseudoProbe> extractProbe (const MachineInstr & MI)

    Defined at line 99 of file llvm/lib/CodeGen/MIRSampleProfile.cpp

  • Align assumeAligned (uint64_t Value)

    Treats the value 0 as a 1, so Align is always at least 1.

    Defined at line 100 of file llvm/include/llvm/Support/Alignment.h

  • template <typename T>
    T maskLeadingZeros (unsigned int N)

    Create a bitmask with the N left-most bits set to 0, and all other

    bits set to 1. Only unsigned types are allowed.

    Defined at line 100 of file llvm/include/llvm/Support/MathExtras.h

  • ElementCount getVectorizedTypeVF (Type * Ty)

    Returns the number of vector elements for a vectorized type.

    Defined at line 100 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • template <typename T>
    support::detail::RepeatAdapter<T> fmt_repeat (T && Item, size_t Count)

    Defined at line 101 of file llvm/include/llvm/Support/FormatAdapters.h

  • template <typename RangeT>
    decltype(adl_detail::rend_impl(std::forward<RangeT>(range))) adl_rend (RangeT && range)

    Returns the reverse-end iterator to

    using `std::rend` and

    functions found through Argument-Dependent Lookup (ADL).

    Defined at line 102 of file llvm/include/llvm/ADT/ADL.h

  • template <typename T>
    int checkedMulAddUnsigned (T A, T B, T C)

    Multiply unsigned integers A and B, and add C to the resulting product.

    Returns

    Optional of result if no unsigned overflow occurred,

    otherwise.

    Defined at line 102 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename T>
    std::enable_if_t<std::is_unsigned_v<T>, std::optional<T>> checkedMulAddUnsigned (T A, T B, T C)

    Multiply unsigned integers A and B, and add C to the resulting product.

    Returns

    Optional of result if no unsigned overflow occurred,

    otherwise.

    Defined at line 102 of file llvm/include/llvm/Support/CheckedArithmetic.h

  • template <typename GraphT>
    void printGraphForFunction (Function & F, GraphT Graph, StringRef Name, bool IsSimple)

    Defined at line 102 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h

  • template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
    T byteswap (T V)

    Reverses the bytes in the given integer value V.

    Defined at line 102 of file llvm/include/llvm/ADT/bit.h

  • RegAllocEvictionAdvisorAnalysisLegacy * createDevelopmentModeAdvisorAnalysisLegacy ()

    Defined at line of file

  • legacy::PassManagerBase * unwrap (LLVMPassManagerRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 103 of file llvm/include/llvm/IR/LegacyPassManager.h

  • template <>
    T * unwrap (LLVMPassManagerRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 103 of file llvm/include/llvm/IR/LegacyPassManager.h

  • LLVMPassManagerRef wrap (const legacy::PassManagerBase * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 103 of file llvm/include/llvm/IR/LegacyPassManager.h

  • void initializeStripDebugMachineModulePass (PassRegistry & )

    Defined at line 103 of file llvm/lib/CodeGen/MachineStripDebug.cpp

  • template <typename T, typename TEnum>
    basic_string enumToString (T Value, ArrayRef<EnumEntry<TEnum>> EnumValues)

    Defined at line 103 of file llvm/include/llvm/Support/ScopedPrinter.h

  • bool isODRAttribute (uint16_t Attr)

    Defined at line 103 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • unsigned int encodeULEB128 (uint64_t Value, uint8_t * p, unsigned int PadTo)

    Utility function to encode a ULEB128 value to a buffer. Returns

    the length in bytes of the encoded value.

    Defined at line 103 of file llvm/include/llvm/Support/LEB128.h

  • void initializeSingleLoopExtractorPass (PassRegistry & )

    Defined at line 104 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp

  • template <typename T, typename = std::enable_if_t<!std::is_convertible_v<T, bool>>>
    auto success (T && Y)

    Wrap a value on the success path in a FailureOr of the same value type.

    Defined at line 104 of file llvm/include/llvm/Support/LogicalResult.h

  • template <class InnerMatcher>
    detail::ValueIsMatcher<InnerMatcher> ValueIs (const InnerMatcher & ValueMatcher)

    Matches an std::optional

    <T

    > with a value that conforms to an inner matcher.

    To match std::nullopt you could use Eq(std::nullopt).

    Defined at line 104 of file llvm/include/llvm/Testing/Support/SupportHelpers.h

  • int getLastFSPassBitBegin ()

    Return the beginning bit for the last FSPass.

    Defined at line 104 of file llvm/include/llvm/Support/Discriminator.h

  • bool isUnpackedStructLiteral (StructType * StructTy)

    Defined at line 105 of file llvm/include/llvm/IR/VectorTypeUtils.h

  • bool isDigit (char C)

    Checks if character

    is one of the 10 decimal digits.

    Defined at line 106 of file llvm/include/llvm/ADT/StringExtras.h

  • void InitializeAllAsmParsers ()

    InitializeAllAsmParsers - The main program should call this function if it

    wants all asm parsers that LLVM is configured to support, to make them

    available via the TargetRegistry.

    It is legal for a client to make multiple calls to this function.

    Defined at line 106 of file llvm/include/llvm/Support/TargetSelect.h

  • template <typename T>
    unsigned int ComputeEditDistance (ArrayRef<T> FromArray, ArrayRef<T> ToArray, bool AllowReplacements, unsigned int MaxEditDistance)

    Defined at line 106 of file llvm/include/llvm/ADT/edit_distance.h

  • bool isAtLeastOrStrongerThan (AtomicOrdering AO, AtomicOrdering Other)

    Defined at line 106 of file llvm/include/llvm/Support/AtomicOrdering.h

  • template <class S1Ty, class S2Ty>
    void set_subtract (S1Ty & S1, const S2Ty & S2)

    set_subtract(A, B) - Compute A := A - B

    Selects the set to iterate based on the relative sizes of A and B for better

    efficiency.

    Defined at line 106 of file llvm/include/llvm/ADT/SetOperations.h

  • void initializePrintModulePassWrapperPass (PassRegistry & )

    Defined at line 107 of file llvm/lib/IR/IRPrintingPasses.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RecTy & Ty)

    Defined at line 107 of file llvm/include/llvm/TableGen/Record.h

  • ErrorAdapter fmt_consume (Error && Item)

    llvm::Error values must be consumed before being destroyed.

    Wrapping an error in fmt_consume explicitly indicates that the formatv_object

    should take ownership and consume it.

    Defined at line 108 of file llvm/include/llvm/Support/FormatAdapters.h

  • bool isHexDigit (char C)

    Checks if character

    is a hexadecimal numeric character.

    Defined at line 109 of file llvm/include/llvm/ADT/StringExtras.h

  • bool refineInstruction (SCCPSolver & Solver, const SmallPtrSetImpl<Value *> & InsertedValues, Instruction & Inst)

    Try to use

    value range from

    to infer the NUW flag.

    Defined at line 109 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • bool mayBeOldLoopAttachmentTag (StringRef Name)

    Check whether a string looks like an old loop attachment tag.

    Defined at line 110 of file llvm/include/llvm/IR/AutoUpgrade.h

  • unsigned int getLastFSPassBitEnd ()

    Return the ending bit for the last FSPass.

    Defined at line 110 of file llvm/include/llvm/Support/Discriminator.h

  • PredIterator pred_begin (BasicBlock * BB)

    Defined at line 111 of file llvm/include/llvm/IR/CFG.h

  • uint64_t MD5Hash (StringRef Str)

    Helper to compute and return lower 64 bits of the given string's MD5 hash.

    Defined at line 111 of file llvm/include/llvm/Support/MD5.h

  • BasicBlock * SplitKnownCriticalEdge (Instruction * TI, unsigned int SuccNum, const CriticalEdgeSplittingOptions & Options, const Twine & BBName)

    If it is known that an edge is critical, SplitKnownCriticalEdge can be

    called directly, rather than calling SplitCriticalEdge first.

    Defined at line 111 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • void initializePrintFunctionPassWrapperPass (PassRegistry & )

    Defined at line 110 of file llvm/lib/IR/IRPrintingPasses.cpp

  • void initializePromoteLegacyPassPass (PassRegistry & )

    Defined at line 110 of file llvm/lib/Transforms/Utils/Mem2Reg.cpp

  • template <typename T>
    void adl_swap (T && lhs, T && rhs)

    Swaps

    with

    using `std::swap` and functions found through

    Argument-Dependent Lookup (ADL).

    Defined at line 110 of file llvm/include/llvm/ADT/ADL.h

  • bool isLower (char C)

    Checks if character

    is a lowercase letter as classified by "C" locale.

    Defined at line 112 of file llvm/include/llvm/ADT/StringExtras.h

  • JITEventListener * unwrap (LLVMJITEventListenerRef P)

    Defined at line 112 of file llvm/include/llvm/ExecutionEngine/JITEventListener.h

  • LLVMJITEventListenerRef wrap (const JITEventListener * P)

    Defined at line 112 of file llvm/include/llvm/ExecutionEngine/JITEventListener.h

  • PredIterator pred_begin (const BasicBlock * BB)

    Defined at line 112 of file llvm/include/llvm/IR/CFG.h

  • StringRef getInstrProfValueProfFuncName ()

    Return the name profile runtime entry point to do value profiling

    for a given site.

    Defined at line 112 of file llvm/include/llvm/ProfileData/InstrProf.h

  • Description getDescImpl (ArrayRef Descriptions, unsigned int Opcode)

    Defined at line 113 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp

  • void initializeX86LoadValueInjectionRetHardeningPassPass (PassRegistry & )

    Defined at line 114 of file llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp

  • void initializePostDomViewerWrapperPassPass (PassRegistry & )

    Defined at line 114 of file llvm/lib/Analysis/DomPrinter.cpp

  • template <typename T, typename TEnum>
    StringRef enumToStringRef (T Value, ArrayRef<EnumEntry<TEnum>> EnumValues)

    Retrieves the Value's enum name.

    Returns an empty StringRef when an invalid value is provided.

    Defined at line 114 of file llvm/include/llvm/Support/ScopedPrinter.h

  • bool isUpper (char C)

    Checks if character

    is a uppercase letter as classified by "C" locale.

    Defined at line 115 of file llvm/include/llvm/ADT/StringExtras.h

  • PredIterator pred_end (BasicBlock * BB)

    Defined at line 115 of file llvm/include/llvm/IR/CFG.h

  • raw_ostream & operator<< (raw_ostream & OS, const DbgValueDef & DV)

    Defined at line 115 of file llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h

  • unsigned int getBaseFSBitBegin ()

    Return the beginning bit for the base (first) FSPass.

    Defined at line 116 of file llvm/include/llvm/Support/Discriminator.h

  • void initializeMachineOptimizationRemarkEmitterPassPass (PassRegistry & )

    Defined at line 116 of file llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp

  • PredIterator pred_end (const BasicBlock * BB)

    Defined at line 116 of file llvm/include/llvm/IR/CFG.h

  • void InitializeAllDisassemblers ()

    InitializeAllDisassemblers - The main program should call this function if

    it wants all disassemblers that LLVM is configured to support, to make

    them available via the TargetRegistry.

    It is legal for a client to make multiple calls to this function.

    Defined at line 116 of file llvm/include/llvm/Support/TargetSelect.h

  • bool operator== (const SMTExpr & LHS, const SMTExpr & RHS)

    Defined at line 117 of file llvm/include/llvm/Support/SMTAPI.h

  • FunctionPass * createX86LoadValueInjectionRetHardeningPass ()

    Defined at line 117 of file llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp

  • const MachineInstrBuilder & addDirectMem (const MachineInstrBuilder & MIB, Register Reg)

    addDirectMem - This function is used to add a direct memory reference to the

    current instruction -- that is, a dereference of an address in a register,

    with no scale, index or displacement. An example is: DWORD PTR [EAX].

    Defined at line 117 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • bool isAlpha (char C)

    Checks if character

    is a valid letter as classified by "C" locale.

    Defined at line 118 of file llvm/include/llvm/ADT/StringExtras.h

  • void initializePostDomOnlyViewerWrapperPassPass (PassRegistry & )

    Defined at line 118 of file llvm/lib/Analysis/DomPrinter.cpp

  • StringRef getInstrProfValueProfMemOpFuncName ()

    Return the name profile runtime entry point to do memop size value

    profiling.

    Defined at line 118 of file llvm/include/llvm/ProfileData/InstrProf.h

  • RemapFlags operator| (RemapFlags LHS, RemapFlags RHS)

    Defined at line 118 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • template <typename RangeT>
    decltype(adl_detail::size_impl(std::forward<RangeT>(range))) adl_size (RangeT && range)

    Returns the size of

    using `std::size` and functions found through

    Argument-Dependent Lookup (ADL).

    Defined at line 118 of file llvm/include/llvm/ADT/ADL.h

  • template <typename T>
    T reverseBits (T Val)

    Reverse the bits in

    Defined at line 118 of file llvm/include/llvm/Support/MathExtras.h

  • bool isTypeTag (uint16_t Tag)

    Defined at line 118 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • bool pred_empty (const BasicBlock * BB)

    Defined at line 119 of file llvm/include/llvm/IR/CFG.h

  • unsigned int getBaseFSBitEnd ()

    Return the ending bit for the base (first) FSPass.

    Defined at line 119 of file llvm/include/llvm/Support/Discriminator.h

  • FunctionPass * createInstSimplifyLegacyPass ()

    Public interface to the simplify instructions pass.

    Defined at line 119 of file llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DbgSSAPhi & PHI)

    Defined at line 119 of file llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h

  • template <typename KeyMatcherT, typename ValueMatcherT>
    detail::StringMapEntryMatcher<KeyMatcherT, ValueMatcherT> IsStringMapEntry (KeyMatcherT KM, ValueMatcherT VM)

    Returns a gMock matcher that matches a `StringMapEntry` whose string key

    matches `KeyMatcher`, and whose value matches `ValueMatcher`.

    Defined at line 119 of file llvm/include/llvm/Testing/ADT/StringMapEntry.h

  • void initializeX86FlagsCopyLoweringPassPass (PassRegistry & )

    Defined at line 120 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • Description getOpDesc (unsigned int Opcode)

    Defined at line 120 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp

  • bool isStrongerThanUnordered (AtomicOrdering AO)

    Defined at line 121 of file llvm/include/llvm/Support/AtomicOrdering.h

  • EmbeddedModelRunnerOptions makeOptions ()

    Defined at line 121 of file llvm/unittests/Analysis/MLModelRunnerTest.cpp

  • bool isGlobalStubReference (unsigned char TargetFlag)

    isGlobalStubReference - Return true if the specified TargetFlag operand is

    a reference to a stub for a global, not the global itself.

    Defined at line 121 of file llvm/lib/Target/X86/X86InstrInfo.h

  • bool isAlnum (char C)

    Checks whether character

    is either a decimal digit or an uppercase or

    lowercase letter as classified by "C" locale.

    Defined at line 122 of file llvm/include/llvm/ADT/StringExtras.h

  • Use * unwrap (LLVMUseRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 122 of file llvm/include/llvm/IR/Use.h

  • LLVMUseRef wrap (const Use * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 122 of file llvm/include/llvm/IR/Use.h

  • hash_code hash_value (const SpecSig & S)

    Defined at line 122 of file llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h

  • bool operator== (const VersionTuple & X, const VersionTuple & Y)

    Determine if two version numbers are equivalent. If not

    provided, minor and subminor version numbers are considered to be zero.

    Defined at line 122 of file llvm/include/llvm/Support/VersionTuple.h

  • bool operator== (const RefType & LHS, const RefType & RHS)

    Defined at line 122 of file llvm/include/llvm/Support/BinaryStreamRef.h

  • const char * getHotnessName (HotnessType HT)

    Defined at line 122 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • StringRef getInstrProfNameVarPrefix ()

    Return the name prefix of variables containing instrumented function names.

    Defined at line 123 of file llvm/include/llvm/ProfileData/InstrProf.h

  • void initializeWinEHStatePassPass (PassRegistry & )

    Defined at line 124 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • unsigned int pred_size (const BasicBlock * BB)

    Get the number of predecessors of

    This is a linear time operation.

    Use

    or hasNPredecessorsOrMore if able.

    Defined at line 124 of file llvm/include/llvm/IR/CFG.h

  • unsigned int getN1Bits (int N)

    Set bits in range of [0 .. n] to 1. Used in FS Discriminators.

    Defined at line 124 of file llvm/include/llvm/Support/Discriminator.h

  • void initializeX86AvoidSFBPassPass (PassRegistry & )

    Defined at line 125 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • SmallVector<Instruction *, 8> findDefsUsedOutsideOfLoop (Loop * L)

    Returns the instructions that use values defined in the loop.

    Defined at line 124 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool isASCII (char C)

    Checks whether character

    is valid ASCII (high bit is zero).

    Defined at line 125 of file llvm/include/llvm/ADT/StringExtras.h

  • void initializeRenameIndependentSubregsLegacyPass (PassRegistry & )

    Defined at line 125 of file llvm/lib/CodeGen/RenameIndependentSubregs.cpp

  • bool isStrongerThanMonotonic (AtomicOrdering AO)

    Defined at line 125 of file llvm/include/llvm/Support/AtomicOrdering.h

  • vector getSubOpDescriptions ()

    Defined at line 125 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp

  • StringRef getInstrProfVTableVarPrefix ()

    Return the name prefix of variables containing virtual table profile data.

    Defined at line 126 of file llvm/include/llvm/ProfileData/InstrProf.h

  • FastMathFlags operator| (FastMathFlags LHS, FastMathFlags RHS)

    Defined at line 126 of file llvm/include/llvm/IR/FMF.h

  • void setDirectAddressInInstr (MachineInstr * MI, unsigned int Operand, Register Reg)

    Replace the address used in the instruction with the direct memory

    reference.

    Defined at line 126 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • bool InitializeNativeTarget ()

    InitializeNativeTarget - The main program should call this function to

    initialize the native target corresponding to the host. This is useful

    for JIT applications to ensure that the target gets linked in correctly.

    It is legal for a client to make multiple calls to this function.

    Defined at line 126 of file llvm/include/llvm/Support/TargetSelect.h

  • int findSplitPointForStackProtector (MachineBasicBlock * BB, const TargetInstrInfo & TII)

    Find the split point at which to splice the end of BB into its success stack

    protector check machine basic block.

    On many platforms, due to ABI constraints, terminators, even before register

    allocation, use physical registers. This creates an issue for us since

    physical registers at this point can not travel across basic

    blocks. Luckily, selectiondag always moves physical registers into vregs

    when they enter functions and moves them through a sequence of copies back

    into the physical registers right before the terminator creating a

    ``Terminator Sequence''. This function is searching for the beginning of the

    terminator sequence so that we can ensure that we splice off not just the

    terminator, but additionally the copies that move the vregs into the

    physical registers.

    Defined at line 126 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • iterator_range predecessors (BasicBlock * BB)

    Defined at line 127 of file llvm/include/llvm/IR/CFG.h

  • bool isASCII (StringRef S)

    Checks whether all characters in S are ASCII.

    Defined at line 128 of file llvm/include/llvm/ADT/StringExtras.h

  • template <class BlockT, class LoopT, typename PredicateT>
    void getUniqueExitBlocksHelper (const LoopT * L, SmallVectorImpl<BlockT *> & ExitBlocks, PredicateT Pred)

    Helper function to get unique loop exits. Pred is a predicate pointing to

    BasicBlocks in a loop which should be considered to find loop exits.

    Defined at line 128 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • inst_iterator inst_begin (Function * F)

    Defined at line 129 of file llvm/include/llvm/IR/InstIterator.h

  • StringRef getInstrProfDataVarPrefix ()

    Return the name prefix of variables containing per-function control data.

    Defined at line 129 of file llvm/include/llvm/ProfileData/InstrProf.h

  • bool isSentinelProbe (uint32_t Flags)

    Defined at line 129 of file llvm/include/llvm/IR/PseudoProbe.h

  • bool isAcquireOrStronger (AtomicOrdering AO)

    Defined at line 129 of file llvm/include/llvm/Support/AtomicOrdering.h

  • template <typename... Ts>
    format_object<Ts...> format (const char * Fmt, const Ts &... Vals)

    These are helper functions used to produce formatted output. They use

    template type deduction to construct the appropriate instance of the

    format_object class to simplify their construction.

    This is typically used like:

    Code

                                                    
                                                           OS << format("%0.4f", myfloat) << '\n';
                                                    
                                                

    Defined at line 129 of file llvm/include/llvm/Support/Format.h

  • inst_iterator inst_end (Function * F)

    Defined at line 130 of file llvm/include/llvm/IR/InstIterator.h

  • iterator_range predecessors (const BasicBlock * BB)

    Defined at line 130 of file llvm/include/llvm/IR/CFG.h

  • bool timeTraceProfilerEnabled ()

    Is the time trace profiler enabled, i.e. initialized?

    Defined at line 130 of file llvm/include/llvm/Support/TimeProfiler.h

  • uint64_t writeMemProfCallStacks (ProfOStream & OS, llvm::MapVector<memprof::CallStackId, llvm::SmallVector<memprof::FrameId>> & MemProfCallStackData)

    Defined at line 130 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • uint64_t decodeULEB128 (const uint8_t * p, unsigned int * n, const uint8_t * end, const char ** error)

    Utility function to decode a ULEB128 value.

    If

    is non-null, it will point to a static error message,

    if an error occured. It will not be modified on success.

    Defined at line 130 of file llvm/include/llvm/Support/LEB128.h

  • inst_range instructions (Function * F)

    Defined at line 131 of file llvm/include/llvm/IR/InstIterator.h

  • bool operator!= (const VersionTuple & X, const VersionTuple & Y)

    Determine if two version numbers are not equivalent.

    If not provided, minor and subminor version numbers are considered to be

    zero.

    Defined at line 131 of file llvm/include/llvm/Support/VersionTuple.h

  • FastMathFlags operator& (FastMathFlags LHS, FastMathFlags RHS)

    Defined at line 131 of file llvm/include/llvm/IR/FMF.h

  • PerfInputFile getPerfInputFile ()

    Defined at line 131 of file llvm/tools/llvm-profgen/llvm-profgen.cpp

  • StringRef getInstrProfCountersVarPrefix ()

    Return the name prefix of profile counter variables.

    Defined at line 132 of file llvm/include/llvm/ProfileData/InstrProf.h

  • raw_ostream & operator<< (raw_ostream & OS, const DanglingDebugInfo::Print & P)

    Defined at line 132 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h

  • void initializeMachineCombinerPass (PassRegistry & )

    Defined at line 134 of file llvm/lib/CodeGen/MachineCombiner.cpp

  • void initializeMachineRegionInfoPassPass (PassRegistry & )

    Defined at line 138 of file llvm/lib/CodeGen/MachineRegionInfo.cpp

  • AllocaInst * DemotePHIToStack (PHINode * P, optional AllocaPoint)

    DemotePHIToStack - This function takes a virtual register computed by a PHI

    node and replaces it with a slot in the stack frame allocated via alloca.

    The PHI node is deleted. It returns the pointer to the alloca inserted.

    Defined at line 132 of file llvm/lib/Transforms/Utils/DemoteRegToStack.cpp

  • uint64_t get_threadid ()

    Return the current thread id, as used in various OS system calls.

    Note that not all platforms guarantee that the value returned will be

    unique across the entire system, so portable code should not assume

    this.

    Defined at line 128 of file llvm/lib/Support/Unix/Threading.inc

  • void initializeX86CallFrameOptimizationPass (PassRegistry & )

    Defined at line 129 of file llvm/lib/Target/X86/X86CallFrameOptimization.cpp

  • void initializeRegAllocScoringPass (PassRegistry & )

    Defined at line 129 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

  • bool hasDiscriminator (uint32_t Flags)

    Defined at line 133 of file llvm/include/llvm/IR/PseudoProbe.h

  • bool isReleaseOrStronger (AtomicOrdering AO)

    Defined at line 133 of file llvm/include/llvm/Support/AtomicOrdering.h

  • const_inst_iterator inst_begin (const Function * F)

    Defined at line 134 of file llvm/include/llvm/IR/InstIterator.h

  • bool isAligned (Align Lhs, uint64_t SizeInBytes)

    Checks that SizeInBytes is a multiple of the alignment.

    Defined at line 134 of file llvm/include/llvm/Support/Alignment.h

  • void initializeSpeculativeExecutionLegacyPassPass (PassRegistry & )

    Defined at line 135 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp

  • bool convertUTF16ToUTF8String (ArrayRef<UTF16> Src, std::string & Out)

    Converts a UTF16 string into a UTF8 std::string.

    Parameters

    Src [in] A buffer of UTF-16 encoded text.
    Out [out] Converted UTF-8 is stored here on success.

    Defined at line 134 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • StringRef getInstrProfBitmapVarPrefix ()

    Return the name prefix of profile bitmap variables.

    Defined at line 135 of file llvm/include/llvm/ProfileData/InstrProf.h

  • RetainedKnowledge getKnowledgeFromUseInAssume (const Use * U)

    Retreive the information help by the Use U of an llvm.assume. the use should

    be in the operand bundle.

    Defined at line 135 of file llvm/include/llvm/Analysis/AssumeBundleQueries.h

  • template <class GraphType>
    iterator_range<typename GraphTraits<GraphType>::nodes_iterator> nodes (const GraphType & G)

    Provide iterator ranges for the graph traits nodes and children

    Defined at line 135 of file llvm/include/llvm/ADT/GraphTraits.h

  • raw_ostream & operator<< (raw_ostream & O, FastMathFlags FMF)

    Defined at line 136 of file llvm/include/llvm/IR/FMF.h

  • const MachineInstrBuilder & addOffset (const MachineInstrBuilder & MIB, int Offset)

    Defined at line 136 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • hash_code hash_value (const FixedPointSemantics & Val)

    Defined at line 137 of file llvm/include/llvm/ADT/APFixedPoint.h

  • const_inst_iterator inst_end (const Function * F)

    Defined at line 137 of file llvm/include/llvm/IR/InstIterator.h

  • StringRef getInstrProfValuesVarPrefix ()

    Return the name prefix of value profile variables.

    Defined at line 138 of file llvm/include/llvm/ProfileData/InstrProf.h

  • void initializeShadowStackGCLoweringPass (PassRegistry & )

    Defined at line 139 of file llvm/lib/CodeGen/ShadowStackGCLowering.cpp

  • bool isAddrAligned (Align Lhs, const void * Addr)

    Checks that Addr is a multiple of the alignment.

    Defined at line 139 of file llvm/include/llvm/Support/Alignment.h

  • int jit_noop ()

    Defined at line 139 of file llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp

  • bool isPrint (char C)

    Checks whether character

    is printable.

    Locale-independent version of the C standard library isprint whose results

    may differ on different platforms.

    Defined at line 139 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator< (const VersionTuple & X, const VersionTuple & Y)

    Determine whether one version number precedes another.

    If not provided, minor and subminor version numbers are considered to be

    zero.

    Defined at line 139 of file llvm/include/llvm/Support/VersionTuple.h

  • DerivedT operator+ (DifferenceTypeT n, const DerivedT & i)

    Defined at line 139 of file llvm/include/llvm/ADT/iterator.h

  • AtomicOrdering getMergedAtomicOrdering (AtomicOrdering AO, AtomicOrdering Other)

    Return a single atomic ordering that is at least as strong as both the

    and

    orderings for an atomic operation.

    Defined at line 139 of file llvm/include/llvm/Support/AtomicOrdering.h

  • bool isGlobalRelativeToPICBase (unsigned char TargetFlag)

    isGlobalRelativeToPICBase - Return true if the specified global value

    reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg). If this

    is true, the addressing mode has the PIC base register added in (e.g. EBX).

    Defined at line 139 of file llvm/lib/Target/X86/X86InstrInfo.h

  • const_inst_range instructions (const Function * F)

    Defined at line 140 of file llvm/include/llvm/IR/InstIterator.h

  • template <class S1Ty, class S2Ty>
    void set_subtract (S1Ty & S1, const S2Ty & S2, S1Ty & Removed, S1Ty & Remaining)

    set_subtract(A, B, C, D) - Compute A := A - B, set C to the elements of B

    removed from A (A ^ B), and D to the elements of B not found in and removed

    from A (B - A).

    Defined at line 140 of file llvm/include/llvm/ADT/SetOperations.h

  • bool InitializeNativeTargetAsmPrinter ()

    InitializeNativeTargetAsmPrinter - The main program should call

    this function to initialize the native target asm printer.

    Defined at line 140 of file llvm/include/llvm/Support/TargetSelect.h

  • StringRef getInstrProfVNodesVarName ()

    Return the name of value profile node array variables:

    Defined at line 141 of file llvm/include/llvm/ProfileData/InstrProf.h

  • const MachineInstrBuilder & addOffset (const MachineInstrBuilder & MIB, const MachineOperand & Offset)

    Defined at line 141 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • template <class GraphType>
    iterator_range<typename GraphTraits<Inverse<GraphType>>::nodes_iterator> inverse_nodes (const GraphType & G)

    Defined at line 141 of file llvm/include/llvm/ADT/GraphTraits.h

  • void initializeRegToMemWrapperPassPass (PassRegistry & )

    Defined at line 142 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp

  • bool convertUTF32ToUTF8String (ArrayRef SrcBytes, std::string & Out)

    Converts a stream of raw bytes assumed to be UTF32 into a UTF8 std::string.

    Parameters

    SrcBytes [in] A buffer of what is assumed to be UTF-32 encoded text.
    Out [out] Converted UTF-8 is stored here on success.

    Defined at line 141 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • template <typename BasicBlockT>
    basic_string SimpleNodeLabelString (const BasicBlockT * Node)

    Defined at line 142 of file llvm/include/llvm/Analysis/CFGPrinter.h

  • inst_iterator inst_begin (Function & F)

    Defined at line 143 of file llvm/include/llvm/IR/InstIterator.h

  • bool isLifetimeIntrinsic (Intrinsic::ID ID)

    Check if

    corresponds to a lifetime intrinsic.

    Defined at line 143 of file llvm/include/llvm/IR/IntrinsicInst.h

  • template <class Ptr>
    auto to_address (const Ptr & P)

    Returns a raw pointer that represents the same address as the argument.

    This implementation can be removed once we move to C++20 where it's defined

    as std::to_address().

    The std::pointer_traits

    <

    >::to_address(p) variations of these overloads has

    not been implemented.

    Defined at line 144 of file llvm/include/llvm/ADT/STLForwardCompat.h

  • inst_iterator inst_end (Function & F)

    Defined at line 144 of file llvm/include/llvm/IR/InstIterator.h

  • void initializePseudoProbeInserterPass (PassRegistry & )

    Defined at line 144 of file llvm/lib/CodeGen/PseudoProbeInserter.cpp

  • uint64_t alignTo (uint64_t Size, Align A)

    Returns a multiple of A needed to store `Size` bytes.

    Defined at line 144 of file llvm/include/llvm/Support/Alignment.h

  • DenseMap writeMemProfCallStackArray (ProfOStream & OS, llvm::MapVector<memprof::CallStackId, llvm::SmallVector<memprof::FrameId>> & MemProfCallStackData, llvm::DenseMap<memprof::FrameId, memprof::LinearFrameId> & MemProfFrameIndexes, llvm::DenseMap<memprof::FrameId, memprof::FrameStat> & FrameHistogram, unsigned int & NumElements)

    Defined at line 144 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • StringRef getInstrProfNamesVarName ()

    Return the name of the variable holding the strings (possibly compressed)

    of all function's PGO names.

    Defined at line 145 of file llvm/include/llvm/ProfileData/InstrProf.h

  • inst_range instructions (Function & F)

    Defined at line 145 of file llvm/include/llvm/IR/InstIterator.h

  • template <class T>
    T * to_address (T * P)

    Defined at line 145 of file llvm/include/llvm/ADT/STLForwardCompat.h

  • void swap (CachedHashString & LHS, CachedHashString & RHS)

    Defined at line 145 of file llvm/include/llvm/ADT/CachedHashString.h

  • StringRef getInstrProfVTableNamesVarName ()

    Defined at line 147 of file llvm/include/llvm/ProfileData/InstrProf.h

  • template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
    bool has_single_bit (T Value)

    Defined at line 147 of file llvm/include/llvm/ADT/bit.h

  • FunctionPass * createMachineRegionInfoPass ()

    Defined at line 147 of file llvm/lib/CodeGen/MachineRegionInfo.cpp

  • AtomicOrderingCABI toCABI (AtomicOrdering AO)

    Defined at line 147 of file llvm/include/llvm/Support/AtomicOrdering.h

  • template <class T>
    bf_iterator<T> bf_begin (const T & G)

    Provide global constructors that automatically figure out correct types.

    Defined at line 148 of file llvm/include/llvm/ADT/BreadthFirstIterator.h

  • const_inst_iterator inst_begin (const Function & F)

    Defined at line 148 of file llvm/include/llvm/IR/InstIterator.h

  • bool operator> (const VersionTuple & X, const VersionTuple & Y)

    Determine whether one version number follows another.

    If not provided, minor and subminor version numbers are considered to be

    zero.

    Defined at line 148 of file llvm/include/llvm/Support/VersionTuple.h

  • formatted_raw_ostream & fouts ()

    fouts() - This returns a reference to a formatted_raw_ostream for

    standard output. Use it like: fouts()

    <

    <

    "foo"

    <

    <

    "bar";

    Defined at line 148 of file llvm/lib/Support/FormattedStream.cpp

  • template <class GraphType>
    iterator_range<typename GraphTraits<GraphType>::ChildIteratorType> children (const typename GraphTraits<GraphType>::NodeRef & G)

    Defined at line 148 of file llvm/include/llvm/ADT/GraphTraits.h

  • void initializeFixupBWInstPassPass (PassRegistry & )

    Defined at line 149 of file llvm/lib/Target/X86/X86FixupBWInsts.cpp

  • bool isPunct (char C)

    Checks whether character

    is a punctuation character.

    Locale-independent version of the C standard library ispunct. The list of

    punctuation characters can be found in the documentation of std::ispunct:

    https://en.cppreference.com/w/cpp/string/byte/ispunct.

    Defined at line 149 of file llvm/include/llvm/ADT/StringExtras.h

  • void maybeDecompress (const object::ObjectFile & Obj, StringRef SectionName, StringRef & SectionContent, SmallString<0> & Out)

    Defined at line 149 of file llvm/tools/llvm-readobj/ObjDumper.cpp

  • template <class NodeT, class RPOTraversalT, class LoopInfoT, class GT = GraphTraits<NodeT>>
    bool containsIrreducibleCFG (RPOTraversalT & RPOTraversal, const LoopInfoT & LI)

    Return true if the control flow in

    is irreducible.

    This is a generic implementation to detect CFG irreducibility based on loop

    info analysis. It can be used for any kind of CFG (Loop, MachineLoop,

    Function, MachineFunction, etc.) by providing an RPO traversal (

    and the loop info analysis (

    of the CFG. This utility

    function is only recommended when loop info analysis is available. If loop

    info analysis isn't available, please, don't compute it explicitly for this

    purpose. There are more efficient ways to detect CFG irreducibility that

    don't require recomputing loop info analysis (e.g., T1/T2 or Tarjan's

    algorithm).

    Requirements:

    1) GraphTraits must be implemented for NodeT type. It is used to access

    NodeT successors.

    2)

    must be a valid reverse post-order traversal of the

    target CFG with begin()/end() iterator interfaces.

    3)

    must be a valid LoopInfoBase that contains up-to-date loop

    analysis information of the CFG.

    This algorithm uses the information about reducible loop back-edges already

    computed in

    When a back-edge is found during the RPO traversal, the

    algorithm checks whether the back-edge is one of the reducible back-edges in

    loop info. If it isn't, the CFG is irreducible. For example, for the CFG

    below (canonical irreducible graph) loop info won't contain any loop, so the

    algorithm will return that the CFG is irreducible when checking the B

    <

    -

    -> C back-edge.

    (A->B, A->C, B->C, C->B, C->D)

    A

    /

    \

    /// B

    <

    - ->C

    |

    D

    Defined at line 149 of file llvm/include/llvm/Analysis/CFG.h

  • FormattedString left_justify (StringRef Str, unsigned int Width)

    left_justify - append spaces after string so total output is

    characters. If

    is larger that

    full string

    is written with no padding.

    Defined at line 150 of file llvm/include/llvm/Support/Format.h

  • uint32_t Hi_32 (uint64_t Value)

    Return the high 32 bits of a 64 bit value.

    Defined at line 150 of file llvm/include/llvm/Support/MathExtras.h

  • const MachineInstrBuilder & addRegOffset (const MachineInstrBuilder & MIB, Register Reg, bool isKill, int Offset)

    addRegOffset - This function is used to add a memory reference of the form

    [Reg + Offset], i.e., one with no scale or index, but with a

    displacement. An example is: DWORD PTR [EAX + 4].

    Defined at line 150 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • Metadata * unwrap (LLVMMetadataRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 151 of file llvm/include/llvm/IR/Metadata.h

  • template <>
    T * unwrap (LLVMMetadataRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 151 of file llvm/include/llvm/IR/Metadata.h

  • LLVMMetadataRef wrap (const Metadata * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 151 of file llvm/include/llvm/IR/Metadata.h

  • const_inst_iterator inst_end (const Function & F)

    Defined at line 151 of file llvm/include/llvm/IR/InstIterator.h

  • FunctionPass * createLoopDataPrefetchPass ()

    ===----------------------------------------------------------------------===//

    LoopDataPrefetch - Perform data prefetching in loops.

    Defined at line 151 of file llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp

  • bool operator== (const AddressRangeValuePair & LHS, const AddressRangeValuePair & RHS)

    Defined at line 151 of file llvm/include/llvm/ADT/AddressRanges.h

  • template <>
    void printIRUnitNameForStackTrace<llvm::Module> (raw_ostream & OS, const Module & IR)

    Defined at line 151 of file llvm/lib/IR/PassManager.cpp

  • template <class S1Ty, class S2Ty>
    bool set_is_subset (const S1Ty & S1, const S2Ty & S2)

    set_is_subset(A, B) - Return true iff A in B

    Defined at line 151 of file llvm/include/llvm/ADT/SetOperations.h

  • template <class T>
    bf_iterator<T> bf_end (const T & G)

    Defined at line 152 of file llvm/include/llvm/ADT/BreadthFirstIterator.h

  • StringRef getCoverageMappingVarName ()

    Return the name of a covarage mapping variable (internal linkage)

    for each instrumented source module. Such variables are allocated

    in the __llvm_covmap section.

    Defined at line 152 of file llvm/include/llvm/ProfileData/InstrProf.h

  • bool isScale (const MachineOperand & MO)

    Defined at line 152 of file llvm/lib/Target/X86/X86InstrInfo.h

  • bool InitializeNativeTargetAsmParser ()

    InitializeNativeTargetAsmParser - The main program should call

    this function to initialize the native target asm parser.

    Defined at line 152 of file llvm/include/llvm/Support/TargetSelect.h

  • void initializePEILegacyPass (PassRegistry & )

    Defined at line 153 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • Description getSubOpDesc (unsigned int Opcode, unsigned int SubOpcode)

    Defined at line 153 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp

  • RTDyldMemoryManager * unwrap (LLVMMCJITMemoryManagerRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 154 of file llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h

  • LLVMMCJITMemoryManagerRef wrap (const RTDyldMemoryManager * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 154 of file llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h

  • const_inst_range instructions (const Function & F)

    Defined at line 154 of file llvm/include/llvm/IR/InstIterator.h

  • Metadata ** unwrap (LLVMMetadataRef * MDs)

    Specialized opaque metadata conversions.

    Defined at line 154 of file llvm/include/llvm/IR/Metadata.h

  • void * SearchForAddressOfSpecialSymbol (const char * SymbolName)

    Defined at line 154 of file llvm/lib/Support/DynamicLibrary.cpp

  • template <std::size_t Index, typename ValueTy>
    decltype(auto) get (StringMapEntry<ValueTy> & E)

    Allow structured bindings on StringMapEntry.

    Defined at line 154 of file llvm/include/llvm/ADT/StringMapEntry.h

  • template <typename T>
    int popcount (T Value)

    Count the number of set bits in a value.

    Ex. popcount(0xF000F000) = 8

    Returns 0 if Value is zero.

    Defined at line 154 of file llvm/include/llvm/ADT/bit.h

  • template <typename BasicBlockT>
    basic_string CompleteNodeLabelString (const BasicBlockT * Node, function_ref<void (raw_string_ostream &, const BasicBlockT &)> HandleBasicBlock, function_ref HandleComment)

    Defined at line 154 of file llvm/include/llvm/Analysis/CFGPrinter.h

  • void initializeOptimizationRemarkEmitterWrapperPassPass (PassRegistry & )

    Defined at line 155 of file llvm/lib/Analysis/OptimizationRemarkEmitter.cpp

  • uint32_t Lo_32 (uint64_t Value)

    Return the low 32 bits of a 64 bit value.

    Defined at line 155 of file llvm/include/llvm/Support/MathExtras.h

  • formatted_raw_ostream & ferrs ()

    ferrs() - This returns a reference to a formatted_raw_ostream for

    standard error. Use it like: ferrs()

    <

    <

    "foo"

    <

    <

    "bar";

    Defined at line 155 of file llvm/lib/Support/FormattedStream.cpp

  • void initializeFixupLEAPassPass (PassRegistry & )

    Defined at line 155 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • template <class GraphType>
    iterator_range<typename GraphTraits<Inverse<GraphType>>::ChildIteratorType> inverse_children (const typename GraphTraits<GraphType>::NodeRef & G)

    Defined at line 155 of file llvm/include/llvm/ADT/GraphTraits.h

  • Instruction * getInstructionByName (Function & F, StringRef Name)

    Defined at line 155 of file llvm/unittests/Analysis/ScalarEvolutionTest.cpp

  • bool skipProfileForFunction (const Function & F)

    Defined at line 156 of file llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h

  • template <class T>
    bool isEmbeddedModelEvaluatorValid ()

    Defined at line 157 of file llvm/include/llvm/Analysis/ReleaseModeModelRunner.h

  • template <class T>
    iterator_range<bf_iterator<T>> breadth_first (const T & G)

    Provide an accessor method to use them in range-based patterns.

    Defined at line 157 of file llvm/include/llvm/ADT/BreadthFirstIterator.h

  • FormattedString right_justify (StringRef Str, unsigned int Width)

    right_justify - add spaces before string so total output is

    characters. If

    is larger that

    full string

    is written with no padding.

    Defined at line 157 of file llvm/include/llvm/Support/Format.h

  • bool operator<= (const VersionTuple & X, const VersionTuple & Y)

    Determine whether one version number precedes or is

    equivalent to another.

    If not provided, minor and subminor version numbers are considered to be

    zero.

    Defined at line 157 of file llvm/include/llvm/Support/VersionTuple.h

  • bool isLeaMem (const MachineInstr & MI, unsigned int Op)

    Defined at line 157 of file llvm/lib/Target/X86/X86InstrInfo.h

  • void CloneFunctionAttributesInto (Function * NewFunc, const Function * OldFunc, ValueToValueMapTy & VMap, bool ModuleLevelChanges, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)

    Clone OldFunc's attributes into NewFunc, transforming values based on the

    mappings in VMap.

    Defined at line 157 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • template <>
    void printIRUnitNameForStackTrace<llvm::Function> (raw_ostream & OS, const Function & IR)

    Defined at line 157 of file llvm/lib/IR/PassManager.cpp

  • MachineFunctionPass * createPrologEpilogInserterPass ()

    Defined at line 157 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • bool isSpace (char C)

    Checks whether character

    is whitespace in the "C" locale.

    Locale-independent version of the C standard library isspace.

    Defined at line 158 of file llvm/include/llvm/ADT/StringExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const AliasSet & AS)

    Defined at line 158 of file llvm/include/llvm/Analysis/AliasSetTracker.h

  • FeatureIndex inlineCostFeatureToMlFeature (InlineCostFeatureIndex Feature)

    clang-format on

    Defined at line 158 of file llvm/include/llvm/Analysis/InlineModelFeatureMaps.h

  • template <typename Optional, typename Function, typename Value = typename llvm::remove_cvref_t<Optional>::value_type>
    std::optional<std::invoke_result_t<Function, Value>> transformOptional (Optional && O, Function && F)

    TODO: Remove this in favor of std::optional

    <T

    >::transform once we switch to

    C++23.

    Defined at line 158 of file llvm/include/llvm/ADT/STLForwardCompat.h

  • template <typename Optional, typename Function, typename Value>
    int transformOptional (Optional && O, Function && F)

    TODO: Remove this in favor of std::optional

    <T

    >::transform once we switch to

    C++23.

    Defined at line 158 of file llvm/include/llvm/ADT/STLForwardCompat.h

  • const MachineInstrBuilder & addRegReg (const MachineInstrBuilder & MIB, Register Reg1, bool isKill1, unsigned int SubReg1, Register Reg2, bool isKill2, unsigned int SubReg2)

    addRegReg - This function is used to add a memory reference of the form:

    [Reg + Reg].

    Defined at line 158 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • template <>
    bool isEmbeddedModelEvaluatorValid<llvm::NoopSavedModelImpl> ()

    Defined at line 159 of file llvm/include/llvm/Analysis/ReleaseModeModelRunner.h

  • bool isEmbeddedModelEvaluatorValid ()

    Defined at line 159 of file llvm/include/llvm/Analysis/ReleaseModeModelRunner.h

  • StringRef getCoverageUnusedNamesVarName ()

    Return the name of the internal variable recording the array

    of PGO name vars referenced by the coverage mapping. The owning

    functions of those names are not emitted by FE (e.g, unused inline

    functions.)

    Defined at line 160 of file llvm/include/llvm/ProfileData/InstrProf.h

  • uint64_t Make_64 (uint32_t High, uint32_t Low)

    Make a 64-bit integer from a high / low pair of 32-bit integers.

    Defined at line 160 of file llvm/include/llvm/Support/MathExtras.h

  • void buildTopDownFuncOrder (LazyCallGraph & CG, int & FunctionOrderList)

    Defined at line 160 of file llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h

  • ConversionResult ConvertUTF32toUTF16 (const UTF32 ** sourceStart, const UTF32 * sourceEnd, UTF16 ** targetStart, UTF16 * targetEnd, ConversionFlags flags)

    ---------------------------------------------------------------------

    Defined at line 160 of file llvm/lib/Support/ConvertUTF.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAIsDead & AA)

    Defined at line 162 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • formatted_raw_ostream & fdbgs ()

    fdbgs() - This returns a reference to a formatted_raw_ostream for

    debug output. Use it like: fdbgs()

    <

    <

    "foo"

    <

    <

    "bar";

    Defined at line 162 of file llvm/lib/Support/FormattedStream.cpp

  • void initializeStackProtectorPass (PassRegistry & )

    Defined at line 161 of file llvm/lib/CodeGen/StackProtector.cpp

  • bool operator== (const fallible_iterator<Underlying> & LHS, const fallible_iterator<Underlying> & RHS)

    Compare fallible iterators for equality.

    Returns true if both LHS and RHS are end-of-range values, or if both are

    non-end-of-range values whose underlying iterator values compare equal.

    If this is a comparison between an end-of-range iterator and a

    non-end-of-range iterator, then the Error (referenced by the

    non-end-of-range value) is marked as checked: Since all

    increment/decrement operations result in an end-of-range value, comparing

    false against end-of-range is equivalent to checking that the Error value

    is success. This flag management enables early returns from loop bodies

    without redundant Error checks.

    Defined at line 161 of file llvm/include/llvm/ADT/fallible_iterator.h

  • void initializeNaryReassociateLegacyPassPass (PassRegistry & )

    Defined at line 162 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp

  • void initializeSCEVAAWrapperPassPass (PassRegistry & )

    Defined at line 162 of file llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp

  • template <class GraphType>
    iterator_range<typename GraphTraits<GraphType>::ChildEdgeIteratorType> children_edges (const typename GraphTraits<GraphType>::NodeRef & G)

    Defined at line 162 of file llvm/include/llvm/ADT/GraphTraits.h

  • Value * getArgByName (Function & F, StringRef Name)

    Defined at line 162 of file llvm/unittests/Analysis/ScalarEvolutionTest.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoUnwind & AA)

    Defined at line 163 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <std::size_t Index, typename ValueTy>
    decltype(auto) get (const StringMapEntry<ValueTy> & E)

    Defined at line 163 of file llvm/include/llvm/ADT/StringMapEntry.h

  • const Metadata * get_hashable_data (const MDOperand & X)

    Make MDOperand transparent for hashing.

    This overload of an implementation detail of the hashing library makes

    MDOperand hash to the same value as a

    pointer.

    Note that overloading

    as follows:

    does not cause MDOperand to be transparent. In particular, a bare pointer

    doesn't get hashed before it's combined, whereas

    would.

    Code

                                                    
                                                             size_t hash_value(const MDOperand &X) { return hash_value(X.get()); }
                                                    
                                                

    Defined at line 164 of file llvm/lib/IR/LLVMContextImpl.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoSync & AA)

    Defined at line 164 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • FormattedString center_justify (StringRef Str, unsigned int Width)

    center_justify - add spaces before and after string so total output is

    characters. If

    is larger that

    full string

    is written with no padding.

    Defined at line 164 of file llvm/include/llvm/Support/Format.h

  • char toLower (char x)

    Returns the corresponding lowercase character if

    is uppercase.

    Defined at line 164 of file llvm/include/llvm/ADT/StringExtras.h

  • bool InitializeNativeTargetDisassembler ()

    InitializeNativeTargetDisassembler - The main program should call

    this function to initialize the native target disassembler.

    Defined at line 164 of file llvm/include/llvm/Support/TargetSelect.h

  • int64_t decodeSLEB128 (const uint8_t * p, unsigned int * n, const uint8_t * end, const char ** error)

    Utility function to decode a SLEB128 value.

    If

    is non-null, it will point to a static error message,

    if an error occured. It will not be modified on success.

    Defined at line 164 of file llvm/include/llvm/Support/LEB128.h

  • raw_ostream & operator<< (raw_ostream & OS, const AANoRecurse & AA)

    Defined at line 165 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • FunctionPass * createNaryReassociatePass ()

    ===----------------------------------------------------------------------===//

    NaryReassociate - Simplify n-ary operations by reassociation.

    Defined at line 165 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp

  • int phys_regs_and_masks (const MachineInstr & MI)

    Returns an iterator range over all physical register and mask operands for

    and bundled instructions. This also skips any debug operands.

    Defined at line 165 of file llvm/include/llvm/CodeGen/LiveRegUnits.h

  • template <unsigned N>
    bool isInt (int64_t x)

    Checks if an integer fits into the given bit width.

    Defined at line 165 of file llvm/include/llvm/Support/MathExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const AANonConvergent & AA)

    Defined at line 166 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <typename EnumTy1, typename EnumTy2, typename = std::enable_if_t<std::is_enum_v<EnumTy1> &&
                                                                      std::is_enum_v<EnumTy2>>>
    auto addEnumValues (EnumTy1 LHS, EnumTy2 RHS)

    Helper which adds two underlying types of enumeration type.

    Implicit conversion to a common type is accepted.

    Defined at line 166 of file llvm/include/llvm/ADT/STLExtras.h

  • bool operator>= (const VersionTuple & X, const VersionTuple & Y)

    Determine whether one version number follows or is

    equivalent to another.

    If not provided, minor and subminor version numbers are considered to be

    zero.

    Defined at line 166 of file llvm/include/llvm/Support/VersionTuple.h

  • ThreadPoolStrategy heavyweight_hardware_concurrency (unsigned int ThreadCount)

    Returns a thread strategy for tasks requiring significant memory or other

    resources. To be used for workloads where hardware_concurrency() proves to

    be less efficient. Avoid this strategy if doing lots of I/O. Currently

    based on physical cores, if available for the host system, otherwise falls

    back to hardware_concurrency(). Returns 1 when LLVM is configured with

    LLVM_ENABLE_THREADS = OFF.

    Defined at line 166 of file llvm/include/llvm/Support/Threading.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAWillReturn & AA)

    Defined at line 167 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • hash_code hash_value (const Expression & Value)

    Defined at line 167 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const BitVector & V)

    Defined at line 167 of file llvm/include/llvm/Analysis/StackLifetime.h

  • void initializeMachineCSELegacyPass (PassRegistry & )

    Defined at line 168 of file llvm/lib/CodeGen/MachineCSE.cpp

  • void initializeMachineModuleInfoWrapperPassPass (PassRegistry & )

    Handle the Pass registration stuff necessary to use DataLayout's.

    Defined at line 166 of file llvm/lib/CodeGen/MachineModuleInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoReturn & AA)

    Defined at line 168 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • bool isDbgInfoIntrinsic (Intrinsic::ID ID)

    Check if

    corresponds to a debug info intrinsic.

    Defined at line 168 of file llvm/include/llvm/IR/IntrinsicInst.h

  • const MachineInstrBuilder & addFullAddress (const MachineInstrBuilder & MIB, const X86AddressMode & AM)

    Defined at line 168 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • raw_ostream & operator<< (raw_ostream & OS, const AANonNull & AA)

    Defined at line 169 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <typename Enum>
    std::underlying_type_t<Enum> to_underlying (Enum E)

    Returns underlying integer value of an enum. Backport of C++23

    std::to_underlying.

    Defined at line 169 of file llvm/include/llvm/ADT/STLForwardCompat.h

  • template <typename Enum>
    int to_underlying (Enum E)

    Returns underlying integer value of an enum. Backport of C++23

    std::to_underlying.

    Defined at line 169 of file llvm/include/llvm/ADT/STLForwardCompat.h

  • StringRef getInstrProfRegFuncsName ()

    Return the name of function that registers all the per-function control

    data at program startup time by calling __llvm_register_function. This

    function has internal linkage and is called by __llvm_profile_init

    runtime method. This function is not generated for these platforms:

    Darwin, Linux, and FreeBSD.

    Defined at line 169 of file llvm/include/llvm/ProfileData/InstrProf.h

  • uint64_t alignTo (uint64_t Size, Align A, uint64_t Skew)

    If non-zero

    is specified, the return value will be a minimal integer

    that is greater than or equal to

    and equal to

    * N +

    for

    some integer N. If

    is larger than

    its value is adjusted to '

    mod

    Examples:

    Code

                                                    
                                                           alignTo(5, Align(8), 7) = 7
                                                           alignTo(17, Align(8), 1) = 17
                                                           alignTo(~0LL, Align(8), 3) = 3
                                                    
                                                

    Defined at line 169 of file llvm/include/llvm/Support/Alignment.h

  • template <class NodeT>
    raw_ostream & operator<< (raw_ostream & O, const DomTreeNodeBase<NodeT> * Node)

    Defined at line 169 of file llvm/include/llvm/Support/GenericDomTree.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAMustProgress & AA)

    Defined at line 170 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • hash_code hash_value (const VersionTuple & VT)

    Defined at line 170 of file llvm/include/llvm/Support/VersionTuple.h

  • bool isMem (const MachineInstr & MI, unsigned int Op)

    Defined at line 170 of file llvm/lib/Target/X86/X86InstrInfo.h

  • raw_ostream & operator<< (raw_ostream & OS, const AANoAlias & AA)

    Defined at line 171 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const Metadata & MD)

    Defined at line 171 of file llvm/include/llvm/IR/Metadata.h

  • char toUpper (char x)

    Returns the corresponding uppercase character if

    is lowercase.

    Defined at line 171 of file llvm/include/llvm/ADT/StringExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const AADereferenceable & AA)

    Defined at line 172 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • uint64_t calculateCountScale (uint64_t MaxCount)

    Calculate what to divide by to scale counts.

    Given the maximum count, calculate a divisor that will scale all the

    weights to strictly less than std::numeric_limits

    <uint32

    _t>::max().

    Defined at line 172 of file llvm/include/llvm/IR/ProfDataUtils.h

  • Error getOffset (const SymbolRef & Sym, SectionRef Sec, uint64_t & Result)

    Defined at line 172 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAAlign & AA)

    Defined at line 173 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • int gep_type_begin (const User * GEP)

    Defined at line 173 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAInstanceInfo & AA)

    Defined at line 174 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • bool operator== (const ilist_iterator<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator<OptionsT, IsReverse, IsConst> & RHS)

    Comparison operators

    Defined at line 174 of file llvm/include/llvm/ADT/ilist_iterator.h

  • template <class S1Ty, class S2Ty>
    bool set_intersects (const S1Ty & S1, const S2Ty & S2)

    set_intersects(A, B) - Return true iff A ^ B is non empty

    Defined at line 174 of file llvm/include/llvm/ADT/SetOperations.h

  • raw_ostream & operator<< (raw_ostream & OS, const AANoCapture & AA)

    Defined at line 175 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • StringRef getInstrProfRegFuncName ()

    Return the name of the runtime interface that registers per-function control

    data for one instrumented function.

    Defined at line 175 of file llvm/include/llvm/ProfileData/InstrProf.h

  • template <typename HasherT, llvm::endianness Endianness>
    void addHash (HashBuilder<HasherT, Endianness> & HBuilder, const VersionTuple & VT)

    Defined at line 175 of file llvm/include/llvm/Support/VersionTuple.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAValueSimplify & AA)

    Defined at line 176 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • FunctionPass * createX86SpeculativeExecutionSideEffectSuppression ()

    Defined at line 176 of file llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp

  • uintptr_t alignAddr (const void * Addr, Align Alignment)

    Aligns `Addr` to `Alignment` bytes, rounding up.

    Defined at line 176 of file llvm/include/llvm/Support/Alignment.h

  • FPClassTest invertFPClassTestIfSimpler (FPClassTest Test, bool UseFCmp)

    Evaluates if the specified FP class test is better performed as the inverse

    (i.e. fewer instructions should be required to lower it). An example is the

    test "inf|normal|subnormal|zero", which is an inversion of "nan".

    Parameters

    Test The test as specified in 'is_fpclass' intrinsic invocation.
    UseFCmp The intention is to perform the comparison using floating-point compare instructions which check for nan.

    Defined at line 176 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • PreservedAnalyses getMachineFunctionPassPreservedAnalyses ()

    Returns the minimum set of Analyses that all machine function passes must

    preserve.

    Defined at line 162 of file llvm/lib/CodeGen/MachinePassManager.cpp

  • bool operator!= (const ilist_iterator<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator<OptionsT, IsReverse, IsConst> & RHS)

    Defined at line 177 of file llvm/include/llvm/ADT/ilist_iterator.h

  • basic_string utohexstr (uint64_t X, bool LowerCase, unsigned int Width)

    Defined at line 177 of file llvm/include/llvm/ADT/StringExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAHeapToStack & AA)

    Defined at line 178 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAIntraFnReachability & AA)

    Defined at line 179 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • void initializeX86SpeculativeExecutionSideEffectSuppressionPass (PassRegistry & )

    Defined at line 180 of file llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp

  • void initializeRegionInfoPassPass (PassRegistry & )

    Defined at line 166 of file llvm/lib/Analysis/RegionInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoFree & AA)

    Defined at line 177 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • void InitializeAllTargetMCAs ()

    InitializeAllTargetMCAs - The main program should call

    this function to initialize the target CustomBehaviour and

    InstrPostProcess classes.

    Defined at line 177 of file llvm/include/llvm/Support/TargetSelect.h

  • void reportVectorizationFailure (StringRef DebugMsg, StringRef ORETag, OptimizationRemarkEmitter * ORE, Loop * TheLoop, Instruction * I)

    Same as above, but the debug message and optimization remark are identical

    Defined at line 177 of file llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h

  • bool isAddMemInstrWithRelocation (const MachineInstr & MI)

    Defined at line 177 of file llvm/lib/Target/X86/X86InstrInfo.h

  • uint32_t get_max_thread_name_length ()

    Get the maximum length of a thread name on this platform.

    A value of 0 means there is no limit.

    Defined at line 179 of file llvm/lib/Support/Unix/Threading.inc

  • void initializePlaceBackedgeSafepointsLegacyPassPass (PassRegistry & )

    Defined at line 172 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • ThreadPoolStrategy heavyweight_hardware_concurrency (StringRef Num)

    Like heavyweight_hardware_concurrency() above, but builds a strategy

    based on the rules described for get_threadpool_strategy().

    If

    is invalid, returns a default strategy where one thread per

    hardware core is used.

    Defined at line 178 of file llvm/include/llvm/Support/Threading.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAMemoryBehavior & AA)

    Defined at line 180 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • int gep_type_end (const User * GEP)

    Defined at line 180 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAMemoryLocation & AA)

    Defined at line 181 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • StringRef getInstrProfNamesRegFuncName ()

    Return the name of the runtime interface that registers the PGO name

    strings.

    Defined at line 181 of file llvm/include/llvm/ProfileData/InstrProf.h

  • bool replaceSignedInst (SCCPSolver & Solver, SmallPtrSetImpl<Value *> & InsertedValues, Instruction & Inst)

    Try to replace signed instructions with their unsigned equivalent.

    Defined at line 181 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • void initializePostDomPrinterWrapperPassPass (PassRegistry & )

    Defined at line 182 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeRegionPrinterPass (PassRegistry & )

    Defined at line 182 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void initializeScopedNoAliasAAWrapperPassPass (PassRegistry & )

    Defined at line 166 of file llvm/lib/Analysis/ScopedNoAliasAA.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAValueConstantRange & AA)

    Defined at line 182 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • uint32_t scaleBranchCount (uint64_t Count, uint64_t Scale)

    Scale an individual branch count.

    Scale a 64-bit weight down to 32-bits using

    Defined at line 182 of file llvm/include/llvm/IR/ProfDataUtils.h

  • template <unsigned N, unsigned S>
    bool isShiftedInt (int64_t x)

    Checks if a signed integer is an N bit number shifted left by S.

    Defined at line 182 of file llvm/include/llvm/Support/MathExtras.h

  • template <class NodeT>
    void PrintDomTree (const DomTreeNodeBase<NodeT> * N, raw_ostream & O, unsigned int Lev)

    Defined at line 182 of file llvm/include/llvm/Support/GenericDomTree.h

  • void error (Twine Msg)

    Defined at line 182 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAPrivatizablePtr & AA)

    Defined at line 183 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • void initializeMachineBlockFrequencyInfoWrapperPassPass (PassRegistry & )

    Defined at line 184 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp

  • void set_thread_name (const Twine & Name)

    Set the name of the current thread. Setting a thread's name can

    be helpful for enabling useful diagnostics under a debugger or when

    logging. The level of support for setting a thread's name varies

    wildly across operating systems, and we only make a best effort to

    perform the operation on supported platforms. No indication of success

    or failure is returned.

    Defined at line 183 of file llvm/lib/Support/Unix/Threading.inc

  • raw_ostream & operator<< (raw_ostream & OS, const AAUndefinedBehavior & AA)

    Defined at line 184 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • raw_ostream & operator<< (raw_ostream & OS, DenormalMode Mode)

    Defined at line 184 of file llvm/include/llvm/ADT/FloatingPointMode.h

  • raw_ostream & operator<< (raw_ostream & OS, const LivePhysRegs & LR)

    Defined at line 184 of file llvm/include/llvm/CodeGen/LivePhysRegs.h

  • bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 184 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • int gep_type_begin (const User & GEP)

    Defined at line 184 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h

  • void initializeRegionOnlyPrinterPass (PassRegistry & )

    Defined at line 185 of file llvm/lib/Analysis/RegionPrinter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAPotentialConstantValues & AA)

    Defined at line 185 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • Error writeMemProfV2 (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, bool MemProfFullSchema)

    Write out MemProf Version2 as follows:

    uint64_t Version

    uint64_t RecordTableOffset = RecordTableGenerator.Emit

    uint64_t FramePayloadOffset = Offset for the frame payload

    uint64_t FrameTableOffset = FrameTableGenerator.Emit

    uint64_t CallStackPayloadOffset = Offset for the call stack payload (NEW V2)

    uint64_t CallStackTableOffset = CallStackTableGenerator.Emit (NEW in V2)

    uint64_t Num schema entries

    uint64_t Schema entry 0

    uint64_t Schema entry 1

    ....

    uint64_t Schema entry N - 1

    OnDiskChainedHashTable MemProfRecordData

    OnDiskChainedHashTable MemProfFrameData

    OnDiskChainedHashTable MemProfCallStackData (NEW in V2)

    Defined at line 185 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAPotentialValues & AA)

    Defined at line 186 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • uint64_t offsetToAlignment (uint64_t Value, Align Alignment)

    Returns the offset to the next integer (mod 2**64) that is greater than

    or equal to

    and is a multiple of

    Defined at line 186 of file llvm/include/llvm/Support/Alignment.h

  • void initializeStaticDataProfileInfoWrapperPassPass (PassRegistry & )

    Defined at line 187 of file llvm/lib/Analysis/StaticDataProfileInfo.cpp

  • void initializePostDomOnlyPrinterWrapperPassPass (PassRegistry & )

    Defined at line 187 of file llvm/lib/Analysis/DomPrinter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoUndef & AA)

    Defined at line 187 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoFPClass & AA)

    Defined at line 188 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • bool operator!= (const fallible_iterator<Underlying> & LHS, const fallible_iterator<Underlying> & RHS)

    Compare fallible iterators for inequality.

    See notes for operator==.

    Defined at line 188 of file llvm/include/llvm/ADT/fallible_iterator.h

  • bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const const_instr_iterator & R)

    Defined at line 188 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • template <typename T>
    int countr_zero_constexpr (T Val)

    Count number of 0's from the least significant bit to the most

    stopping at the first 1.

    A constexpr version of countr_zero.

    Only unsigned integral types are allowed.

    Returns std::numeric_limits

    <T

    >::digits on an input of 0.

    Defined at line 188 of file llvm/include/llvm/ADT/bit.h

  • optional getStringFnAttrAsInt (const Attribute & Attr)

    Defined at line 188 of file llvm/lib/Analysis/InlineCost.cpp

  • StringRef getInstrProfInitFuncName ()

    Return the name of the runtime initialization method that is generated by

    the compiler. The function calls __llvm_profile_register_functions and

    __llvm_profile_override_default_filename functions if needed. This function

    has internal linkage and invoked at startup time via init_array.

    Defined at line 189 of file llvm/include/llvm/ProfileData/InstrProf.h

  • raw_ostream & operator<< (raw_ostream & OS, const AACallEdges & AA)

    Defined at line 189 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • void initializePostInlineEntryExitInstrumenterPass (PassRegistry & )

    Defined at line 189 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const VirtRegMap & VRM)

    Defined at line 189 of file llvm/include/llvm/CodeGen/VirtRegMap.h

  • template <unsigned N>
    bool isUInt (uint64_t x)

    Checks if an unsigned integer fits into the given bit width.

    Defined at line 189 of file llvm/include/llvm/Support/MathExtras.h

  • void initializeRegionViewerPass (PassRegistry & )

    Defined at line 190 of file llvm/lib/Analysis/RegionPrinter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAInterFnReachability & AA)

    Defined at line 190 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • ThreadPoolStrategy hardware_concurrency (unsigned int ThreadCount)

    Returns a default thread strategy where all available hardware resources

    are to be used, except for those initially excluded by an affinity mask.

    This function takes affinity into consideration. Returns 1 when LLVM is

    configured with LLVM_ENABLE_THREADS=OFF.

    Defined at line 190 of file llvm/include/llvm/Support/Threading.h

  • DenormalModeKind parseDenormalFPAttributeComponent (StringRef Str)

    Parse the expected names from the denormal-fp-math attribute.

    Defined at line 190 of file llvm/include/llvm/ADT/FloatingPointMode.h

  • bool isMemInstrWithGOTPCREL (const MachineInstr & MI)

    Defined at line 190 of file llvm/lib/Target/X86/X86InstrInfo.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAPointerInfo & AA)

    Defined at line 191 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • int gep_type_end (const User & GEP)

    Defined at line 191 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h

  • FormattedNumber format_hex (uint64_t N, unsigned int Width, bool Upper)

    format_hex - Output

    as a fixed width hexadecimal. If number will not

    fit in width, full number is still printed. Examples:

    OS

    <

    <

    format_hex(255, 4) => 0xff

    OS

    <

    <

    format_hex(255, 4, true) => 0xFF

    OS

    <

    <

    format_hex(255, 6) => 0x00ff

    OS

    <

    <

    format_hex(255, 2) => 0xff

    Defined at line 191 of file llvm/include/llvm/Support/Format.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAAssumptionInfo & AA)

    Defined at line 192 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • uint64_t offsetToAlignedAddr (const void * Addr, Align Alignment)

    Returns the necessary adjustment for aligning `Addr` to `Alignment`

    bytes, rounding up.

    Defined at line 192 of file llvm/include/llvm/Support/Alignment.h

  • bool operator== (const const_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 192 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • template <class T>
    int po_begin (const T & G)

    Provide global constructors that automatically figure out correct types...

    Defined at line 193 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    po_iterator<T> po_begin (const T & G)

    Provide global constructors that automatically figure out correct types...

    Defined at line 193 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • void initializeRegionOnlyViewerPass (PassRegistry & )

    Defined at line 193 of file llvm/lib/Analysis/RegionPrinter.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AAUnderlyingObjects & AA)

    Defined at line 193 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • SucceededMatcher Succeeded ()

    Defined at line 194 of file llvm/include/llvm/Testing/Support/Error.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAInvariantLoadPointer & AA)

    Defined at line 194 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • StringRef getInstrProfRuntimeHookVarName ()

    Return the name of the hook variable defined in profile runtime library.

    A reference to the variable causes the linker to link in the runtime

    initialization module (which defines the hook variable).

    Defined at line 194 of file llvm/include/llvm/ProfileData/InstrProf.h

  • const MachineInstrBuilder & addFrameReference (const MachineInstrBuilder & MIB, int FI, int Offset)

    addFrameReference - This function is used to add a reference to the base of

    an abstract object on the stack frame of the current function. This

    reference has base register as the FrameIndex offset until it is resolved.

    This allows a constant offset to be specified as well...

    Defined at line 194 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • template <class T>
    int po_end (const T & G)

    Defined at line 195 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    po_iterator<T> po_end (const T & G)

    Defined at line 195 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • FailedMatcher Failed ()

    Defined at line 195 of file llvm/include/llvm/Testing/Support/Error.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAAddressSpace & AA)

    Defined at line 195 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AANoAliasAddrSpace & AA)

    Defined at line 196 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const nonconst_instr_iterator & R)

    Defined at line 196 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • template <typename T>
    generic_gep_type_iterator<const T *> gep_type_begin (Type * Op0, ArrayRef<T> A)

    Defined at line 196 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h

  • JITSymbolFlags operator& (const JITSymbolFlags & LHS, const JITSymbolFlags::FlagNames & RHS)

    Defined at line 196 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h

  • void toHex (ArrayRef Input, bool LowerCase, SmallVectorImpl<char> & Output)

    Convert buffer

    to its hexadecimal representation.

    The returned string is double the size of

    Defined at line 196 of file llvm/include/llvm/ADT/StringExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAAllocationInfo & AA)

    Defined at line 197 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <class T>
    iterator_range<po_iterator<T>> post_order (const T & G)

    Defined at line 197 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    int post_order (const T & G)

    Defined at line 197 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • std::optional<int> getStringFnAttrAsInt (CallBase & CB, StringRef AttrKind)

    Defined at line 197 of file llvm/lib/Analysis/InlineCost.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const SCEV & S)

    Defined at line 197 of file llvm/include/llvm/Analysis/ScalarEvolution.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAIndirectCallInfo & AA)

    Defined at line 198 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <typename InfoT>
    Matcher Failed ()

    Defined at line 198 of file llvm/include/llvm/Testing/Support/Error.h

  • void initializePHIEliminationPass (PassRegistry & )

    Defined at line 199 of file llvm/lib/CodeGen/PHIElimination.cpp

  • void deleteGlobalInitializer (GlobalVariable * GV)

    "Remove" the global variable by deleting its initializer, making it

    external.

    Defined at line 198 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • template <unsigned N, unsigned S>
    bool isShiftedUInt (uint64_t x)

    Checks if a unsigned integer is an N bit number shifted left by S.

    Defined at line 198 of file llvm/include/llvm/Support/MathExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const AAGlobalValueInfo & AA)

    Defined at line 199 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AADenormalFPMath & AA)

    Defined at line 200 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • StringRef getInstrProfRuntimeHookVarUseFuncName ()

    Return the name of the compiler generated function that references the

    runtime hook variable. The function is a weak global.

    Defined at line 200 of file llvm/include/llvm/ProfileData/InstrProf.h

  • bool operator== (const nonconst_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 200 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • ThreadPoolStrategy hardware_concurrency (StringRef Num)

    Like hardware_concurrency() above, but builds a strategy

    based on the rules described for get_threadpool_strategy().

    If

    is invalid, returns a default strategy where one thread per

    hardware core is used.

    Defined at line 200 of file llvm/include/llvm/Support/Threading.h

  • void initializeStackSlotColoringLegacyPass (PassRegistry & )

    Defined at line 201 of file llvm/lib/CodeGen/StackSlotColoring.cpp

  • Align commonAlignment (Align A, uint64_t Offset)

    Returns the alignment that satisfies both alignments.

    Same semantic as MinAlign.

    Defined at line 201 of file llvm/include/llvm/Support/Alignment.h

  • optional getStringFnAttrAsInt (Function * F, StringRef AttrKind)

    Defined at line 201 of file llvm/lib/Analysis/InlineCost.cpp

  • template <typename ...PTs>
    bool operator== (PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs)

    Defined at line 202 of file llvm/include/llvm/ADT/PointerUnion.h

  • template <typename T>
    generic_gep_type_iterator<const T *> gep_type_end (Type * , ArrayRef<T> A)

    Defined at line 202 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h

  • uint64_t decodeULEB128AndInc (const uint8_t *& p, const uint8_t * end, const char ** error)

    Defined at line 202 of file llvm/include/llvm/Support/LEB128.h

  • template <typename T>
    int countr_zero (T Val)

    Count number of 0's from the least significant bit to the most

    stopping at the first 1.

    Only unsigned integral types are allowed.

    Returns std::numeric_limits

    <T

    >::digits on an input of 0.

    Defined at line 202 of file llvm/include/llvm/ADT/bit.h

  • raw_ostream & operator<< (raw_ostream & OS, LocationSize Size)

    Defined at line 203 of file llvm/include/llvm/Analysis/MemoryLocation.h

  • template <typename InfoT, typename M>
    Matcher Failed (M Matcher)

    Defined at line 203 of file llvm/include/llvm/Testing/Support/Error.h

  • JITSymbolFlags operator| (const JITSymbolFlags & LHS, const JITSymbolFlags::FlagNames & RHS)

    Defined at line 203 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h

  • StringRef denormalModeKindName (DenormalModeKind Mode)

    Return the name used for the denormal handling mode used by the

    expected names from the denormal-fp-math attribute.

    Defined at line 203 of file llvm/include/llvm/ADT/FloatingPointMode.h

  • void initializePostRASchedulerLegacyPass (PassRegistry & )

    Defined at line 204 of file llvm/lib/CodeGen/PostRASchedulerList.cpp

  • bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_pointer R)

    Defined at line 204 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • StringRef getInstrProfCounterBiasVarName ()

    Defined at line 204 of file llvm/include/llvm/ProfileData/InstrProf.h

  • FormattedNumber format_hex_no_prefix (uint64_t N, unsigned int Width, bool Upper)

    format_hex_no_prefix - Output

    as a fixed width hexadecimal. Does not

    prepend '0x' to the outputted string. If number will not fit in width,

    full number is still printed. Examples:

    OS

    <

    <

    format_hex_no_prefix(255, 2) => ff

    OS

    <

    <

    format_hex_no_prefix(255, 2, true) => FF

    OS

    <

    <

    format_hex_no_prefix(255, 4) => 00ff

    OS

    <

    <

    format_hex_no_prefix(255, 1) => ff

    Defined at line 204 of file llvm/include/llvm/Support/Format.h

  • ChangeStatus clampStateAndIndicateChange (DerefState & S, const DerefState & R)

    Defined at line 204 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <typename ...PTs>
    bool operator!= (PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs)

    Defined at line 207 of file llvm/include/llvm/ADT/PointerUnion.h

  • bool operator== (const_pointer L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 207 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • iterator_range<ConstMIBundleOperands> const_mi_bundle_ops (const MachineInstr & MI)

    Defined at line 207 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h

  • void CloneFunctionMetadataInto (Function & NewFunc, const Function & OldFunc, ValueToValueMapTy & VMap, RemapFlags RemapFlag, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Clone OldFunc's metadata into NewFunc.

    The caller is expected to populate

    beforehand and set an appropriate

    Subprograms/CUs/types that were already mapped to themselves

    won't be duplicated.

    NOTE: This function doesn't clone !llvm.dbg.cu when cloning into a different

    module. Use CloneFunctionInto for that behavior.

    Defined at line 207 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void deleteFunctionBody (Function * F)

    "Remove" the function by deleting all of it's basic blocks, making it

    external.

    Defined at line 206 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • uint64_t maxUIntN (uint64_t N)

    Gets the maximum value for a N-bit unsigned integer.

    Defined at line 207 of file llvm/include/llvm/Support/MathExtras.h

  • Type * parseType (StringRef Asm, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)

    Parse a type in the given string.

    Parameters

    Slots The optional slot mapping that will restore the parsing state of the module.

    Returns

    null on error.

    Defined at line 207 of file llvm/lib/AsmParser/Parser.cpp

  • StringRef getInstrProfBitmapBiasVarName ()

    Defined at line 208 of file llvm/include/llvm/ProfileData/InstrProf.h

  • basic_string toHex (ArrayRef Input, bool LowerCase)

    Defined at line 208 of file llvm/include/llvm/ADT/StringExtras.h

  • template <class T, class SetType>
    po_ext_iterator<T, SetType> po_ext_begin (T G, SetType & S)

    Defined at line 209 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <typename... M>
    Matcher FailedWithMessage (M... Matcher)

    Defined at line 209 of file llvm/include/llvm/Testing/Support/Error.h

  • ConversionResult ConvertUTF16toUTF32 (const UTF16 ** sourceStart, const UTF16 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags)

    ---------------------------------------------------------------------

    Defined at line 209 of file llvm/lib/Support/ConvertUTF.cpp

  • StructType * getDummyStructTy (LLVMContext & Context)

    Defined at line 210 of file llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h

  • bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_reference R)

    Defined at line 210 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • int64_t decodeSLEB128AndInc (const uint8_t *& p, const uint8_t * end, const char ** error)

    Defined at line 210 of file llvm/include/llvm/Support/LEB128.h

  • bool recomputeLiveIns (MachineBasicBlock & MBB)

    Convenience function for recomputing live-in's for a MBB. Returns true if

    any changes were made.

    Defined at line 210 of file llvm/include/llvm/CodeGen/LivePhysRegs.h

  • ThreadPoolStrategy optimal_concurrency (unsigned int TaskCount)

    Returns an optimal thread strategy to execute specified amount of tasks.

    This strategy should prevent us from creating too many threads if we

    occasionaly have an unexpectedly small amount of tasks.

    Defined at line 211 of file llvm/include/llvm/Support/Threading.h

  • void get_thread_name (SmallVectorImpl<char> & Name)

    Get the name of the current thread. The level of support for

    getting a thread's name varies wildly across operating systems, and it

    is not even guaranteed that if you can successfully set a thread's name

    that you can later get it back. This function is intended for diagnostic

    purposes, and as with setting a thread's name no indication of whether

    the operation succeeded or failed is returned.

    Defined at line 211 of file llvm/lib/Support/Unix/Threading.inc

  • template <typename ...PTs>
    bool operator< (PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs)

    Defined at line 212 of file llvm/include/llvm/ADT/PointerUnion.h

  • bool operator== (const MaterializedIterator & LHS, const MaterializedIterator & RHS)

    Equality operator.

    Defined at line 212 of file llvm/include/llvm/ADT/PagedVector.h

  • StringRef getInstrProfNameSeparator ()

    Return the marker used to separate PGO names during serialization.

    Defined at line 213 of file llvm/include/llvm/ProfileData/InstrProf.h

  • iterator_range<MIBundleOperands> mi_bundle_ops (MachineInstr & MI)

    Defined at line 213 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h

  • template <class T, class SetType>
    po_ext_iterator<T, SetType> po_ext_end (T G, SetType & S)

    Defined at line 214 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • basic_string toHex (StringRef Input, bool LowerCase)

    Defined at line 214 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator== (const_reference L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 214 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • iterator_range vp_depth_first_shallow (VPBlockBase * G)

    Returns an iterator range to traverse the graph starting at

    in

    depth-first order. The iterator won't traverse through region blocks.

    Defined at line 214 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h

  • template <typename MachineFunctionPassT>
    FunctionToMachineFunctionPassAdaptor createFunctionToMachineFunctionPassAdaptor (MachineFunctionPassT && Pass)

    Defined at line 214 of file llvm/include/llvm/CodeGen/MachinePassManager.h

  • raw_ostream & operator<< (raw_ostream & OS, BranchProbability Prob)

    Defined at line 215 of file llvm/include/llvm/Support/BranchProbability.h

  • void addStringMetadataToLoop (Loop * TheLoop, const char * MDString, unsigned int V)

    Set input string into loop metadata by keeping other values intact.

    If the string is already in loop metadata update value if it is

    different.

    Defined at line 215 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • FormattedNumber format_decimal (int64_t N, unsigned int Width)

    format_decimal - Output

    as a right justified, fixed-width decimal. If

    number will not fit in width, full number is still printed. Examples:

    OS

    <

    <

    format_decimal(0, 5) => " 0"

    OS

    <

    <

    format_decimal(255, 5) => " 255"

    OS

    <

    <

    format_decimal(-1, 3) => " -1"

    OS

    <

    <

    format_decimal(12345, 3) => "12345"

    Defined at line 216 of file llvm/include/llvm/Support/Format.h

  • template <typename M>
    Matcher FailedWithMessageArray (M Matcher)

    Defined at line 216 of file llvm/include/llvm/Testing/Support/Error.h

  • bool printCompactDWARFExpr (raw_ostream & OS, iterator I, iterator E, function GetNameForDWARFReg)

    Defined at line 216 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp

  • uint64_t decodeULEB128AndIncUnsafe (const uint8_t *& p)

    Defined at line 218 of file llvm/include/llvm/Support/LEB128.h

  • template <class RandomAccessIterator, class Comparator = std::less<
                                              typename std::iterator_traits<RandomAccessIterator>::value_type>>
    void parallelSort (RandomAccessIterator Start, RandomAccessIterator End, const Comparator & Comp)

    Defined at line 218 of file llvm/include/llvm/Support/Parallel.h

  • unsigned int encode (Align A)

    Returns a representation of the alignment, the encoded value is positive by

    definition.

    Defined at line 219 of file llvm/include/llvm/Support/Alignment.h

  • template <class T, class SetType>
    iterator_range<po_ext_iterator<T, SetType>> post_order_ext (const T & G, SetType & S)

    Defined at line 219 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • bool operator!= (const MaterializedIterator & LHS, const MaterializedIterator & RHS)

    Defined at line 219 of file llvm/include/llvm/ADT/PagedVector.h

  • bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 219 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • iterator_range vp_depth_first_shallow (const VPBlockBase * G)

    Defined at line 219 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h

  • const MachineInstrBuilder & addConstantPoolReference (const MachineInstrBuilder & MIB, unsigned int CPI, Register GlobalBaseReg, unsigned char OpFlags)

    addConstantPoolReference - This function is used to add a reference to the

    base of a constant value spilled to the per-function constant pool. The

    reference uses the abstract ConstantPoolIndex which is retained until

    either machine code emission or assembly output. In PIC mode on x86-32,

    the GlobalBaseReg parameter can be used to make this a

    GlobalBaseReg-relative reference.

    Defined at line 219 of file llvm/lib/Target/X86/X86InstrBuilder.h

  • DenormalMode parseDenormalFPAttribute (StringRef Str)

    Returns the denormal mode to use for inputs and outputs.

    Defined at line 219 of file llvm/include/llvm/ADT/FloatingPointMode.h

  • template <typename Underlying>
    fallible_iterator<Underlying> make_fallible_itr (Underlying I, Error & Err)

    Convenience wrapper to make a fallible_iterator value from an instance

    of an underlying iterator and an Error reference.

    Defined at line 220 of file llvm/include/llvm/ADT/fallible_iterator.h

  • Error writeMemProfRadixTreeBased (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, IndexedVersion Version, bool MemProfFullSchema, unique_ptr DataAccessProfileData, unique_ptr MemProfSum)

    Defined at line 220 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • void initializeMachineUniformityAnalysisPassPass (PassRegistry & )

    Defined at line 221 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp

  • template <typename M>
    detail::ValueMatchesPoly<M> HasValue (M Matcher)

    Defined at line 221 of file llvm/include/llvm/Testing/Support/Error.h

  • template <class T>
    df_iterator<T> df_begin (const T & G)

    Provide global constructors that automatically figure out correct types...

    Defined at line 222 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    int df_begin (const T & G)

    Provide global constructors that automatically figure out correct types...

    Defined at line 222 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • ThreadPoolStrategy jobserver_concurrency ()

    Returns a thread strategy that attempts to coordinate with a GNU Make

    jobserver. The number of active threads will be limited by the number of

    available job slots. If no jobserver is detected in the environment, this

    strategy falls back to the default hardware_concurrency() behavior.

    Defined at line 222 of file llvm/include/llvm/Support/Threading.h

  • bool tryGetHexFromNibbles (char MSB, char LSB, uint8_t & Hex)

    Store the binary representation of the two provided values,

    and

    that make up the nibbles of a hexadecimal digit. If

    or

    do not correspond to proper nibbles of a hexadecimal digit, this method

    returns false. Otherwise, returns true.

    Defined at line 222 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const const_instr_iterator & R)

    Defined at line 223 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • int64_t minIntN (int64_t N)

    Gets the minimum value for a N-bit signed integer.

    Defined at line 223 of file llvm/include/llvm/Support/MathExtras.h

  • Type * parseTypeAtBeginning (StringRef Asm, unsigned int & Read, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)

    Parse a string

    that starts with a type.

    gives the number of characters that have been read to parse

    the type in

    Parameters

    Slots The optional slot mapping that will restore the parsing state of the module.

    Returns

    null on error.

    Defined at line 223 of file llvm/lib/AsmParser/Parser.cpp

  • void initializeMachineFunctionSplitterPass (PassRegistry & )

    Defined at line 223 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp

  • void CloneFunctionBodyInto (Function & NewFunc, const Function & OldFunc, ValueToValueMapTy & VMap, RemapFlags RemapFlag, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Clone OldFunc's body into NewFunc.

    Defined at line 221 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • bool operator== (Align Lhs, uint64_t Rhs)

    Comparisons between Align and scalars. Rhs must be positive.

    Defined at line 222 of file llvm/include/llvm/Support/Alignment.h

  • uint64_t overwriteULEB128 (uint8_t * bufLoc, uint64_t val)

    Overwrite a ULEB128 value and keep the original length.

    Defined at line 223 of file llvm/include/llvm/Support/LEB128.h

  • void initializePhiValuesWrapperPassPass (PassRegistry & )

    Defined at line 225 of file llvm/lib/Analysis/PhiValues.cpp

  • bool isHeader (StringRef S)

    An over-accepting simplification of the HTTP RFC 7230 spec.

    Defined at line 225 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • void fullyRecomputeLiveIns (ArrayRef<MachineBasicBlock *> MBBs)

    Convenience function for recomputing live-in's for a set of MBBs until the

    computation converges.

    Defined at line 225 of file llvm/include/llvm/CodeGen/LivePhysRegs.h

  • void initializeX86PreTileConfigPass (PassRegistry & )

    Defined at line 226 of file llvm/lib/Target/X86/X86PreTileConfig.cpp

  • bool operator!= (Align Lhs, uint64_t Rhs)

    Defined at line 226 of file llvm/include/llvm/Support/Alignment.h

  • template <class T>
    df_iterator<T> df_end (const T & G)

    Defined at line 227 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    int df_end (const T & G)

    Defined at line 227 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <typename Underlying>
    fallible_iterator<Underlying> make_fallible_end (Underlying E)

    Convenience wrapper to make a fallible_iterator end value from an instance

    of an underlying iterator.

    Defined at line 227 of file llvm/include/llvm/ADT/fallible_iterator.h

  • bool operator!= (const const_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 227 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • KnownFPClass operator| (KnownFPClass LHS, const KnownFPClass & RHS)

    Defined at line 227 of file llvm/include/llvm/Support/KnownFPClass.h

  • iterator_range vp_post_order_shallow (VPBlockBase * G)

    Returns an iterator range to traverse the graph starting at

    in

    post order. The iterator won't traverse through region blocks.

    Defined at line 227 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h

  • template <typename UnaryFunction>
    void forEachCallbackCallSite (const CallBase & CB, UnaryFunction Func)

    Apply function Func to each CB's callback call site.

    Defined at line 228 of file llvm/include/llvm/IR/AbstractCallSite.h

  • template <typename T1, typename T2, typename>
    SmallVector<uint64_t, 2> getDisjunctionWeights (const SmallVector<T1, 2> & B1, const SmallVector<T2, 2> & B2)

    Get the branch weights of a branch conditioned on b1 || b2, where b1 and b2

    are 2 booleans that are the conditions of 2 branches for which we have the

    branch weights B1 and B2, respectively. In both B1 and B2, the first

    position (index 0) is for the 'true' branch, and the second position (index

    1) is for the 'false' branch.

    Defined at line 228 of file llvm/include/llvm/IR/ProfDataUtils.h

  • void initializePartiallyInlineLibCallsLegacyPassPass (PassRegistry & )

    Defined at line 230 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DbgRecord & R)

    Defined at line 230 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • bool operator<= (Align Lhs, uint64_t Rhs)

    Defined at line 230 of file llvm/include/llvm/Support/Alignment.h

  • bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const nonconst_instr_iterator & R)

    Defined at line 231 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • template <class T>
    int ipo_begin (const T & G)

    Defined at line 232 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    ipo_iterator<T> ipo_begin (const T & G)

    Defined at line 232 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • KnownFPClass operator| (const KnownFPClass & LHS, KnownFPClass && RHS)

    Defined at line 232 of file llvm/include/llvm/Support/KnownFPClass.h

  • template <typename Underlying>
    iterator_range<fallible_iterator<Underlying>> make_fallible_range (Underlying I, Underlying E, Error & Err)

    Defined at line 232 of file llvm/include/llvm/ADT/fallible_iterator.h

  • int64_t maxIntN (int64_t N)

    Gets the maximum value for a N-bit signed integer.

    Defined at line 232 of file llvm/include/llvm/Support/MathExtras.h

  • template <class T>
    iterator_range<df_iterator<T>> depth_first (const T & G)

    Provide an accessor method to use them in range-based patterns.

    Defined at line 233 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    int depth_first (const T & G)

    Provide an accessor method to use them in range-based patterns.

    Defined at line 233 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    int scc_begin (const T & G)

    Construct the begin iterator for a deduced graph type T.

    Defined at line 233 of file llvm/include/llvm/ADT/SCCIterator.h

  • template <class T>
    scc_iterator<T> scc_begin (const T & G)

    Construct the begin iterator for a deduced graph type T.

    Defined at line 233 of file llvm/include/llvm/ADT/SCCIterator.h

  • template <class IterTy, class FuncTy>
    void parallelForEach (IterTy Begin, IterTy End, FuncTy Fn)

    Defined at line 233 of file llvm/include/llvm/Support/Parallel.h

  • bool operator>= (Align Lhs, uint64_t Rhs)

    Defined at line 234 of file llvm/include/llvm/Support/Alignment.h

  • uint8_t hexFromNibbles (char MSB, char LSB)

    Return the binary representation of the two provided values,

    and

    that make up the nibbles of a hexadecimal digit.

    Defined at line 234 of file llvm/include/llvm/ADT/StringExtras.h

  • iterator_range vp_post_order_deep (VPBlockBase * G)

    Returns an iterator range to traverse the graph starting at

    in

    post order while traversing through region blocks.

    Defined at line 235 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h

  • raw_ostream & operator<< (raw_ostream & OS, const DynamicAPInt & X)

    Defined at line 235 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • bool operator!= (const nonconst_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 235 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • void printFunctionList (const std::vector<Function *> & Funcs)

    Prints out list of problematic functions

    Defined at line 235 of file llvm/tools/bugpoint/BugDriver.cpp

  • SmallVector getHeaders ()

    Defined at line 235 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • Value * MapValue (const Value * V, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Look up or compute a value in the value map.

    Return a mapped value for a function-local value (Argument, Instruction,

    BasicBlock), or compute and memoize a value for a Constant.

    1. If

    is in VM, return the result.

    2. Else if

    can be materialized with

    do so, memoize

    it in

    and return it.

    3. Else if

    is a function-local value, return nullptr.

    4. Else if

    is a

    return

    or

    depending

    on

    5. Else if

    is a

    wrapping a LocalAsMetadata,

    recurse on the local SSA value, and return nullptr or "metadata !{}" on

    missing depending on RF_IgnoreMissingValues.

    6. Else if

    is a

    rewrap the return of

    7. Else, compute the equivalent constant, and return it.

    Defined at line 236 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • Value * MapValue (const Value * V, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Look up or compute a value in the value map.

    Return a mapped value for a function-local value (Argument, Instruction,

    BasicBlock), or compute and memoize a value for a Constant.

    1. If

    is in VM, return the result.

    2. Else if

    can be materialized with

    do so, memoize

    it in

    and return it.

    3. Else if

    is a function-local value, return nullptr.

    4. Else if

    is a

    return

    or

    depending

    on

    5. Else if

    is a

    wrapping a LocalAsMetadata,

    recurse on the local SSA value, and return nullptr or "metadata !{}" on

    missing depending on RF_IgnoreMissingValues.

    6. Else if

    is a

    rewrap the return of

    7. Else, compute the equivalent constant, and return it.

    Defined at line 236 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • template <LEB128Sign Sign, typename T, typename U = char, unsigned MaxLEB128SizeBytes = 16>
    void appendLEB128 (SmallVectorImpl<U> & Buffer, T Value)

    Defined at line 236 of file llvm/include/llvm/Support/LEB128.h

  • DIExpression * parseDIExpressionBodyAtBeginning (StringRef Asm, unsigned int & Read, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)

    Defined at line 236 of file llvm/lib/AsmParser/Parser.cpp

  • template <typename T>
    int countl_zero (T Val)

    Count number of 0's from the most significant bit to the least

    stopping at the first 1.

    Only unsigned integral types are allowed.

    Returns std::numeric_limits

    <T

    >::digits on an input of 0.

    Defined at line 236 of file llvm/include/llvm/ADT/bit.h

  • template <class T>
    ipo_iterator<T> ipo_end (const T & G)

    Defined at line 237 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    int ipo_end (const T & G)

    Defined at line 237 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    int scc_end (const T & G)

    Construct the end iterator for a deduced graph type T.

    Defined at line 238 of file llvm/include/llvm/ADT/SCCIterator.h

  • template <class T>
    scc_iterator<T> scc_end (const T & G)

    Construct the end iterator for a deduced graph type T.

    Defined at line 238 of file llvm/include/llvm/ADT/SCCIterator.h

  • raw_ostream & operator<< (raw_ostream & OS, const MemoryAccess & MA)

    Defined at line 238 of file llvm/include/llvm/Analysis/MemorySSA.h

  • bool operator< (Align Lhs, uint64_t Rhs)

    Defined at line 238 of file llvm/include/llvm/Support/Alignment.h

  • bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_pointer R)

    Defined at line 239 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • template <class IterTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
    ResultTy parallelTransformReduce (IterTy Begin, IterTy End, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)

    Defined at line 239 of file llvm/include/llvm/Support/Parallel.h

  • template <class T, class U>
    bool operator== (const IntrusiveRefCntPtr<T> & A, const IntrusiveRefCntPtr<U> & B)

    Defined at line 240 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • template <typename UnaryFunction>
    void forEachCallbackFunction (const CallBase & CB, UnaryFunction Func)

    Apply function Func to each CB's callback function.

    Defined at line 240 of file llvm/include/llvm/IR/AbstractCallSite.h

  • void initializeMachinePipelinerPass (PassRegistry & )

    Defined at line 241 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • void initializeProfileSummaryInfoWrapperPassPass (PassRegistry & )

    Defined at line 241 of file llvm/lib/Analysis/ProfileSummaryInfo.cpp

  • template <class T>
    int inverse_post_order (const T & G)

    Defined at line 242 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class T>
    iterator_range<ipo_iterator<T>> inverse_post_order (const T & G)

    Defined at line 242 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • bool operator!= (const_pointer L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 242 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • iterator_range vp_depth_first_deep (VPBlockBase * G)

    Returns an iterator range to traverse the graph starting at

    in

    depth-first order while traversing through region blocks.

    Defined at line 242 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h

  • bool operator> (Align Lhs, uint64_t Rhs)

    Defined at line 242 of file llvm/include/llvm/Support/Alignment.h

  • BasicBlock * SplitCriticalEdge (BasicBlock * Src, BasicBlock * Dst, const CriticalEdgeSplittingOptions & Options)

    If an edge from Src to Dst is critical, split the edge and return true,

    otherwise return false. This method requires that there be an edge between

    the two blocks. It updates the analyses passed in the options struct

    Defined at line 242 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • template <typename TResult>
    bool ConvertUTF8toWideInternal (StringRef Source, TResult & Result)

    Defined at line 242 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • Value * simplifyInstruction (SCCPSolver & Solver, SmallPtrSetImpl<Value *> & InsertedValues, Instruction & Inst)

    Try to use

    value range from

    to simplify it.

    Defined at line 242 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • bool isUIntN (unsigned int N, uint64_t x)

    Checks if an unsigned integer fits into the given (dynamic) bit width.

    Defined at line 243 of file llvm/include/llvm/Support/MathExtras.h

  • bool isTheSameCluster (unsigned int A, unsigned int B)

    Return whether the input cluster ID's are the same and valid.

    Defined at line 244 of file llvm/include/llvm/CodeGen/ScheduleDAG.h

  • FormattedBytes format_bytes (ArrayRef Bytes, optional FirstByteOffset, uint32_t NumPerLine, uint8_t ByteGroupSize, uint32_t IndentLevel, bool Upper)

    Defined at line 244 of file llvm/include/llvm/Support/Format.h

  • bool isBitcodeWrapper (const unsigned char * BufPtr, const unsigned char * BufEnd)

    isBitcodeWrapper - Return true if the given bytes are the magic bytes

    for an LLVM IR bitcode wrapper.

    Defined at line 244 of file llvm/include/llvm/Bitcode/BitcodeReader.h

  • bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_reference R)

    Defined at line 245 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • template <class T, class U>
    bool operator!= (const IntrusiveRefCntPtr<T> & A, const IntrusiveRefCntPtr<U> & B)

    Defined at line 246 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • iterator_range vp_depth_first_deep (const VPBlockBase * G)

    Defined at line 246 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h

  • void printGlobalVariableList (const std::vector<GlobalVariable *> & GVs)

    Prints out list of problematic global variables

    Defined at line 246 of file llvm/tools/bugpoint/BugDriver.cpp

  • bool tryGetFromHex (StringRef Input, std::string & Output)

    Convert hexadecimal string

    to its binary representation and store

    the result in

    Returns true if the binary representation could be

    converted from the hexadecimal string. Returns false if

    contains

    non-hexadecimal digits. The output string is half the size of

    Defined at line 246 of file llvm/include/llvm/ADT/StringExtras.h

  • bool tryGetFromHex (StringRef Input, std::string & Output)

    Convert hexadecimal string

    to its binary representation and store

    the result in

    Returns true if the binary representation could be

    converted from the hexadecimal string. Returns false if

    contains

    non-hexadecimal digits. The output string is half the size of

    Defined at line 246 of file llvm/include/llvm/ADT/StringExtras.h

  • unique_ptr createCOFFDumper (const object::COFFObjectFile & Obj, ScopedPrinter & Writer)

    Defined at line 251 of file llvm/tools/llvm-readobj/COFFDumper.cpp

  • unique_ptr createWasmDumper (const object::WasmObjectFile & Obj, ScopedPrinter & Writer)

    Defined at line 248 of file llvm/tools/llvm-readobj/WasmDumper.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RegSizeInfo & T)

    Defined at line 250 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RegSizeInfoByHwMode & T)

    Defined at line 255 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const TypeSetByHwMode & T)

    Defined at line 253 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • FunctionPass * createBasicRegisterAllocator ()

    BasicRegisterAllocation Pass - This pass implements a degenerate global

    register allocator using the basic regalloc framework.

    Defined at line 253 of file llvm/lib/CodeGen/RegAllocBasic.cpp

  • std::optional<ElementCount> getOptionalElementCountLoopAttribute (const Loop * TheLoop)

    Find a combination of metadata ("llvm.loop.vectorize.width" and

    "llvm.loop.vectorize.scalable.enable") for a loop and use it to construct a

    ElementCount. If the metadata "llvm.loop.vectorize.width" cannot be found

    then std::nullopt is returned.

    Defined at line 250 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void initializeSafepointIRVerifierPass (PassRegistry & )

    Defined at line 247 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • template <class T, class SetTy>
    df_ext_iterator<T, SetTy> df_ext_begin (const T & G, SetTy & S)

    Defined at line 247 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • int64_t int64fromDynamicAPInt (const DynamicAPInt & X)

    This just calls through to the operator int64_t, but it's useful when a

    function pointer is required. (Although this is marked inline, it is still

    possible to obtain and use a function pointer to this.)

    Defined at line 247 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • void ExpectCanParseString (StringRef String)

    Checks that the given string can be parsed into an identical string inside

    of an array.

    Defined at line 247 of file llvm/unittests/Support/YAMLParserTest.cpp

  • bool isIntN (unsigned int N, int64_t x)

    Checks if an signed integer fits into the given (dynamic) bit width.

    Defined at line 248 of file llvm/include/llvm/Support/MathExtras.h

  • void resolveRelativeObjectPath (SmallVectorImpl<char> & Buf, DWARFDie CU)

    Resolve the relative path to a build artifact referenced by DWARF by

    applying DW_AT_comp_dir.

    Defined at line 248 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const ConstantFPRange & CR)

    Defined at line 248 of file llvm/include/llvm/IR/ConstantFPRange.h

  • InstructionCost operator+ (const InstructionCost & LHS, const InstructionCost & RHS)

    Defined at line 248 of file llvm/include/llvm/Support/InstructionCost.h

  • SuccIterator succ_begin (Instruction * I)

    Defined at line 249 of file llvm/include/llvm/IR/CFG.h

  • template <class NodeRef, class BlockT, class RegionT>
    RNSuccIterator<NodeRef, BlockT, RegionT> succ_begin (NodeRef Node)

    Defined at line 249 of file llvm/include/llvm/Analysis/RegionIterator.h

  • bool operator!= (const_reference L, const MachineInstrBundleIterator<Ty, IsReverse> & R)

    Defined at line 249 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h

  • DynamicAPInt dynamicAPIntFromInt64 (int64_t X)

    Defined at line 250 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • SuccIterator succ_begin (const Instruction * I)

    Defined at line 250 of file llvm/include/llvm/IR/CFG.h

  • raw_ostream & operator<< (raw_ostream & OS, const MCOperand & MO)

    Defined at line 251 of file llvm/include/llvm/MC/MCInst.h

  • template <class T, class SetTy>
    df_ext_iterator<T, SetTy> df_ext_end (const T & G, SetTy & S)

    Defined at line 252 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T, class U>
    bool operator== (const IntrusiveRefCntPtr<T> & A, U * B)

    Defined at line 252 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • raw_ostream & operator<< (raw_ostream & OS, const SCEVPredicate & P)

    Defined at line 252 of file llvm/include/llvm/Analysis/ScalarEvolution.h

  • template <typename... Ts>
    auto formatv (bool Validate, const char * Fmt, Ts &&... Vals)

    formatv() with validation enable/disable controlled by the first argument.

    Defined at line 252 of file llvm/include/llvm/Support/FormatVariadic.h

  • Align getKnownAlignment (Value * V, const DataLayout & DL, const Instruction * CxtI, AssumptionCache * AC, const DominatorTree * DT)

    Try to infer an alignment for the specified pointer.

    Defined at line 252 of file llvm/include/llvm/Transforms/Utils/Local.h

  • SuccIterator succ_end (Instruction * I)

    Defined at line 253 of file llvm/include/llvm/IR/CFG.h

  • FormattedBytes format_bytes_with_ascii (ArrayRef Bytes, optional FirstByteOffset, uint32_t NumPerLine, uint8_t ByteGroupSize, uint32_t IndentLevel, bool Upper)

    Defined at line 253 of file llvm/include/llvm/Support/Format.h

  • template <class NodeRef, class BlockT, class RegionT>
    RNSuccIterator<NodeRef, BlockT, RegionT> succ_end (NodeRef Node)

    Defined at line 254 of file llvm/include/llvm/Analysis/RegionIterator.h

  • SuccIterator succ_end (const Instruction * I)

    Defined at line 254 of file llvm/include/llvm/IR/CFG.h

  • void analyzeImportedModule (const DWARFDie & DIE, CompileUnit & CU, DWARFLinkerBase::SwiftInterfacesMapTy * ParseableSwiftInterfaces, std::function<void (const Twine &, const DWARFDie &)> ReportWarning)

    Collect references to parseable Swift interfaces in imported

    DW_TAG_module blocks.

    Defined at line 254 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • bool isMask_32 (uint32_t Value)

    Return true if the argument is a non-empty sequence of ones starting at the

    least significant bit with the remainder zero (32 bit version).

    Ex. isMask_32(0x0000FFFFU) == true.

    Defined at line 255 of file llvm/include/llvm/Support/MathExtras.h

  • InstructionCost operator- (const InstructionCost & LHS, const InstructionCost & RHS)

    Defined at line 255 of file llvm/include/llvm/Support/InstructionCost.h

  • template <class T, class SetType>
    ipo_ext_iterator<T, SetType> ipo_ext_begin (const T & G, SetType & S)

    Defined at line 256 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • template <class RangeTy, class Comparator = std::less<decltype(*std::begin(RangeTy()))>>
    void parallelSort (RangeTy && R, const Comparator & Comp)

    Range wrappers.

    Defined at line 256 of file llvm/include/llvm/Support/Parallel.h

  • raw_ostream & operator<< (raw_ostream & OS, const MCInst & MI)

    Defined at line 256 of file llvm/include/llvm/MC/MCInst.h

  • template <class T, class U>
    bool operator!= (const IntrusiveRefCntPtr<T> & A, U * B)

    Defined at line 257 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • bool succ_empty (const Instruction * I)

    Defined at line 257 of file llvm/include/llvm/IR/CFG.h

  • template <class T, class SetTy>
    iterator_range<df_ext_iterator<T, SetTy>> depth_first_ext (const T & G, SetTy & S)

    Defined at line 257 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • bool isRawBitcode (const unsigned char * BufPtr, const unsigned char * BufEnd)

    isRawBitcode - Return true if the given bytes are the magic bytes for

    raw LLVM IR bitcode (without a wrapper).

    Defined at line 257 of file llvm/include/llvm/Bitcode/BitcodeReader.h

  • void computeLiveIns (LivePhysRegs & LiveRegs, const MachineBasicBlock & MBB)

    Computes registers live-in to

    assuming all of its successors

    live-in lists are up-to-date. Puts the result into the given LivePhysReg

    instance

    Defined at line 257 of file llvm/lib/CodeGen/LivePhysRegs.cpp

  • std::vector<std::pair<StringRef, uint64_t>> GetStatistics ()

    Get the statistics. This can be used to look up the value of

    statistics without needing to parse JSON.

    This function does not prevent statistics being updated by other threads

    during it's execution. It will return the value at the point that it is

    read. However, it will prevent new statistics from registering until it

    completes.

    Defined at line 257 of file llvm/lib/Support/Statistic.cpp

  • void salvageDebugInfoForDbgValue (const MachineRegisterInfo & MRI, MachineInstr & MI, ArrayRef<MachineOperand *> DbgUsers)

    Assuming the instruction

    is going to be deleted, attempt to salvage

    debug users of

    by writing the effect of

    in a DIExpression.

    Defined at line 257 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • bool ConvertUTF8toWide (StringRef Source, std::wstring & Result)

    Converts a UTF-8 StringRef to a std::wstring.

    Returns

    true on success.

    Defined at line 258 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • template <typename... Ts>
    auto formatv (const char * Fmt, Ts &&... Vals)

    formatv() with validation enabled.

    Defined at line 259 of file llvm/include/llvm/Support/FormatVariadic.h

  • void initializeMachineUniformityInfoPrinterPassPass (PassRegistry & )

    Defined at line 260 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp

  • FunctionPass * createBasicRegisterAllocator (RegAllocFilterFunc F)

    Defined at line 257 of file llvm/lib/CodeGen/RegAllocBasic.cpp

  • unsigned int succ_size (const Instruction * I)

    Defined at line 260 of file llvm/include/llvm/IR/CFG.h

  • template <class T, class SetType>
    ipo_ext_iterator<T, SetType> ipo_ext_end (const T & G, SetType & S)

    Defined at line 261 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • bool isMask_64 (uint64_t Value)

    Return true if the argument is a non-empty sequence of ones starting at the

    least significant bit with the remainder zero (64 bit version).

    Defined at line 261 of file llvm/include/llvm/Support/MathExtras.h

  • template <class RangeTy, class FuncTy>
    void parallelForEach (RangeTy && R, FuncTy Fn)

    Defined at line 261 of file llvm/include/llvm/Support/Parallel.h

  • void ExpectCannotParseString (StringRef String)

    Checks that parsing the given string inside an array fails.

    Defined at line 261 of file llvm/unittests/Support/YAMLParserTest.cpp

  • template <class T, class U>
    bool operator== (T * A, const IntrusiveRefCntPtr<U> & B)

    Defined at line 262 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • InstructionCost operator* (const InstructionCost & LHS, const InstructionCost & RHS)

    Defined at line 262 of file llvm/include/llvm/Support/InstructionCost.h

  • bool ConvertUTF8toWide (const char * Source, std::wstring & Result)

    Converts a UTF-8 C-string to a std::wstring.

    Returns

    true on success.

    Defined at line 262 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • Metadata * MapMetadata (const Metadata * MD, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Lookup or compute a mapping for a piece of metadata.

    Compute and memoize a mapping for

    1. If

    is mapped, return it.

    2. Else if

    or

    is an

    return

    3. Else if

    is a

    call

    and

    re-wrap its return (returning nullptr on nullptr).

    4. Else if

    predicate returns true for

    then add an

    identity mapping for it and return it.

    5. Else,

    is an

    These are remapped, along with their

    transitive operands. Distinct nodes are duplicated or moved depending

    on

    Uniqued nodes are remapped like constants.

    Defined at line 262 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • Metadata * MapMetadata (const Metadata * MD, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Lookup or compute a mapping for a piece of metadata.

    Compute and memoize a mapping for

    1. If

    is mapped, return it.

    2. Else if

    or

    is an

    return

    3. Else if

    is a

    call

    and

    re-wrap its return (returning nullptr on nullptr).

    4. Else if

    predicate returns true for

    then add an

    identity mapping for it and return it.

    5. Else,

    is an

    These are remapped, along with their

    transitive operands. Distinct nodes are duplicated or moved depending

    on

    Uniqued nodes are remapped like constants.

    Defined at line 262 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • iterator_range successors (Instruction * I)

    Defined at line 263 of file llvm/include/llvm/IR/CFG.h

  • template <class T, class E>
    std::enable_if_t<std::is_error_code_enum<E>::value || std::is_error_condition_enum<E>::value, bool> operator== (const ErrorOr<T> & Err, E Code)

    Defined at line 263 of file llvm/include/llvm/Support/ErrorOr.h

  • template <class T, class E>
    int operator== (const ErrorOr<T> & Err, E Code)

    Defined at line 263 of file llvm/include/llvm/Support/ErrorOr.h

  • iterator_range successors (const Instruction * I)

    Defined at line 266 of file llvm/include/llvm/IR/CFG.h

  • void ResetStatistics ()

    Reset the statistics. This can be used to zero and de-register the

    statistics in order to measure a compilation.

    When this function begins to call destructors prior to returning, all

    statistics will be zero and unregistered. However, that might not remain the

    case by the time this function finishes returning. Whether update from other

    threads are lost or merely deferred until during the function return is

    timing sensitive.

    Callers who intend to use this to measure statistics for a single

    compilation should ensure that no compilations are in progress at the point

    this function is called and that only one compilation executes until calling

    GetStatistics().

    Defined at line 266 of file llvm/lib/Support/Statistic.cpp

  • void initializeStaticDataSplitterPass (PassRegistry & )

    Defined at line 266 of file llvm/lib/CodeGen/StaticDataSplitter.cpp

  • template <class T, class SetType>
    iterator_range<ipo_ext_iterator<T, SetType>> inverse_post_order_ext (const T & G, SetType & S)

    Defined at line 266 of file llvm/include/llvm/ADT/PostOrderIterator.h

  • void setExplicitlyUnknownBranchWeights (Instruction & I, StringRef PassName)

    Specify that the branch weights for this terminator cannot be known at

    compile time. This should only be called by passes, and never as a default

    behavior in e.g. MDBuilder. The goal is to use this info to validate passes

    do not accidentally drop profile info, and this API is called in cases where

    the pass explicitly cannot provide that info. Defaulting it in would hide

    bugs where the pass forgets to transfer over or otherwise specify profile

    info. Use `PassName` to capture the pass name (i.e. DEBUG_TYPE) for

    debuggability.

    Defined at line 266 of file llvm/lib/IR/ProfDataUtils.cpp

  • std::optional<MDNode *> makeFollowupLoopID (MDNode * OrigLoopID, ArrayRef FollowupAttrs, const char * InheritOptionsAttrsPrefix, bool AlwaysNew)

    Create a new loop identifier for a loop created from a loop transformation.

    Parameters

    OrigLoopID The loop ID of the loop before the transformation.
    FollowupAttrs List of attribute names that contain attributes to be added to the new loop ID.
    InheritOptionsAttrsPrefix Selects which attributes should be inherited from the original loop. The following values are considered: nullptr : Inherit all attributes from "" : Do not inherit any attribute from only use those specified by a followup attribute. "<prefix>": Inherit all attributes except those which start with<prefix>; commonly used to remove metadata for the applied transformation.
    AlwaysNew If true, do not try to reuse OrigLoopID and never return std::nullopt.

    Returns

    The loop ID for the after-transformation loop. The following values

    can be returned:

    std::nullopt : No followup attribute was found; it is up to the

    transformation to choose attributes that make sense.

    The original identifier can be reused.

    nullptr : The new loop has no attributes.

    MDNode* : A new unique loop identifier.

    Defined at line 264 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <class T, class U>
    bool operator!= (T * A, const IntrusiveRefCntPtr<U> & B)

    Defined at line 267 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • bool isShiftedMask_32 (uint32_t Value)

    Return true if the argument contains a non-empty sequence of ones with the

    remainder zero (32 bit version.) Ex. isShiftedMask_32(0x0000FF00U) == true.

    Defined at line 267 of file llvm/include/llvm/Support/MathExtras.h

  • template <class RangeTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
    ResultTy parallelTransformReduce (RangeTy && R, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)

    Defined at line 267 of file llvm/include/llvm/Support/Parallel.h

  • template <std::size_t I, typename PointerTy, unsigned IntBits, typename IntType, typename PtrTraits, typename Info>
    decltype(auto) get (const PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info> & Pair)

    Allow structured bindings on PointerIntPair.

    Defined at line 267 of file llvm/include/llvm/ADT/PointerIntPair.h

  • bool operator<= (Align Lhs, MaybeAlign Rhs)

    Don't allow relational comparisons with MaybeAlign.

    Defined at line 268 of file llvm/include/llvm/Support/Alignment.h

  • raw_ostream & operator<< (raw_ostream & OS, const AliasSetTracker & AST)

    Defined at line 268 of file llvm/include/llvm/Analysis/AliasSetTracker.h

  • void addLiveIns (MachineBasicBlock & MBB, const LivePhysRegs & LiveRegs)

    Adds registers contained in

    to the block live-in list of

    Does not add reserved registers.

    Defined at line 268 of file llvm/lib/CodeGen/LivePhysRegs.cpp

  • bool operator>= (Align Lhs, MaybeAlign Rhs)

    Defined at line 269 of file llvm/include/llvm/Support/Alignment.h

  • InstructionCost operator/ (const InstructionCost & LHS, const InstructionCost & RHS)

    Defined at line 269 of file llvm/include/llvm/Support/InstructionCost.h

  • bool operator< (Align Lhs, MaybeAlign Rhs)

    Defined at line 270 of file llvm/include/llvm/Support/Alignment.h

  • SuccIterator succ_begin (BasicBlock * BB)

    Defined at line 270 of file llvm/include/llvm/IR/CFG.h

  • bool operator== (const SameNameIterator & A, const SameNameIterator & B)

    Defined at line 270 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h

  • bool isBitcode (const unsigned char * BufPtr, const unsigned char * BufEnd)

    isBitcode - Return true if the given bytes are the magic bytes for

    LLVM IR bitcode, either with or without a wrapper.

    Defined at line 270 of file llvm/include/llvm/Bitcode/BitcodeReader.h

  • bool convertWideToUTF8 (const std::wstring & Source, std::string & Result)

    Converts a std::wstring to a UTF-8 encoded std::string.

    Returns

    true on success.

    Defined at line 270 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • bool operator> (Align Lhs, MaybeAlign Rhs)

    Defined at line 271 of file llvm/include/llvm/Support/Alignment.h

  • SetThreadPriorityResult set_thread_priority (ThreadPriority Priority)

    Defined at line 271 of file llvm/lib/Support/Unix/Threading.inc

  • template <class T>
    bool operator== (std::nullptr_t , const IntrusiveRefCntPtr<T> & B)

    Defined at line 272 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • MDNode * MapMetadata (const MDNode * MD, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Version of MapMetadata with type safety for MDNode.

    Defined at line 272 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • MDNode * MapMetadata (const MDNode * MD, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Version of MapMetadata with type safety for MDNode.

    Defined at line 272 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • MemoryBlock trimBlockToPageSize (MemoryBlock M)

    Defined at line 272 of file llvm/lib/ExecutionEngine/SectionMemoryManager.cpp

  • void parallelFor (size_t Begin, size_t End, function_ref<void (size_t)> Fn)

    Defined at line 272 of file llvm/lib/Support/Parallel.cpp

  • bool operator<= (MaybeAlign Lhs, Align Rhs)

    Defined at line 273 of file llvm/include/llvm/Support/Alignment.h

  • template <class T>
    int idf_begin (const T & G)

    Defined at line 273 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    idf_iterator<T> idf_begin (const T & G)

    Defined at line 273 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • SuccIterator succ_begin (const BasicBlock * BB)

    Defined at line 273 of file llvm/include/llvm/IR/CFG.h

  • bool isShiftedMask_64 (uint64_t Value)

    Return true if the argument contains a non-empty sequence of ones with the

    remainder zero (64 bit version.)

    Defined at line 273 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator>= (MaybeAlign Lhs, Align Rhs)

    Defined at line 274 of file llvm/include/llvm/Support/Alignment.h

  • bool operator< (MaybeAlign Lhs, Align Rhs)

    Defined at line 275 of file llvm/include/llvm/Support/Alignment.h

  • bool operator> (MaybeAlign Lhs, Align Rhs)

    Defined at line 276 of file llvm/include/llvm/Support/Alignment.h

  • SuccIterator succ_end (BasicBlock * BB)

    Defined at line 276 of file llvm/include/llvm/IR/CFG.h

  • raw_ostream & operator<< (raw_ostream & OS, const InstructionCost & V)

    Defined at line 276 of file llvm/include/llvm/Support/InstructionCost.h

  • void setExplicitlyUnknownBranchWeightsIfProfiled (Instruction & I, StringRef PassName, const Function * F)

    Like setExplicitlyUnknownBranchWeights(...), but only sets unknown branch

    weights in the new instruction if the parent function of the original

    instruction has an entry count. This is to not confuse users by injecting

    profile data into non-profiled functions. If

    is nullptr, we will fetch

    the function from

    Defined at line 276 of file llvm/lib/IR/ProfDataUtils.cpp

  • template <class RangeTy, class FuncTy>
    Error parallelForEachError (RangeTy && R, FuncTy Fn)

    Parallel for-each, but with error handling.

    Defined at line 276 of file llvm/include/llvm/Support/Parallel.h

  • template <class T>
    bool operator== (const IntrusiveRefCntPtr<T> & A, std::nullptr_t B)

    Defined at line 277 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • bool operator<= (MaybeAlign Lhs, MaybeAlign Rhs)

    Defined at line 278 of file llvm/include/llvm/Support/Alignment.h

  • template <class T>
    idf_iterator<T> idf_end (const T & G)

    Defined at line 278 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    int idf_end (const T & G)

    Defined at line 278 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • bool operator>= (MaybeAlign Lhs, MaybeAlign Rhs)

    Defined at line 279 of file llvm/include/llvm/Support/Alignment.h

  • SuccIterator succ_end (const BasicBlock * BB)

    Defined at line 279 of file llvm/include/llvm/IR/CFG.h

  • bool isPowerOf2_32 (uint32_t Value)

    Return true if the argument is a power of two > 0.

    Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)

    Defined at line 279 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator< (MaybeAlign Lhs, MaybeAlign Rhs)

    Defined at line 280 of file llvm/include/llvm/Support/Alignment.h

  • template <typename T>
    int countl_one (T Value)

    Count the number of ones from the most significant bit to the first

    zero bit.

    Ex. countl_one(0xFF0FFF00) == 8.

    Only unsigned integral types are allowed.

    Returns std::numeric_limits

    <T

    >::digits on an input of all ones.

    Defined at line 280 of file llvm/include/llvm/ADT/bit.h

  • bool operator> (MaybeAlign Lhs, MaybeAlign Rhs)

    Defined at line 281 of file llvm/include/llvm/Support/Alignment.h

  • bool operator== (const RawLocationWrapper & A, const RawLocationWrapper & B)

    Defined at line 281 of file llvm/include/llvm/IR/IntrinsicInst.h

  • basic_string fromHex (StringRef Input)

    Convert hexadecimal string

    to its binary representation.

    The return string is half the size of

    Defined at line 281 of file llvm/include/llvm/ADT/StringExtras.h

  • template <class T>
    bool operator!= (std::nullptr_t A, const IntrusiveRefCntPtr<T> & B)

    Defined at line 282 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • bool succ_empty (const BasicBlock * BB)

    Defined at line 282 of file llvm/include/llvm/IR/CFG.h

  • ConversionResult convertUTF8Sequence (const UTF8 ** source, const UTF8 * sourceEnd, UTF32 * target, ConversionFlags flags)

    Convert the first UTF8 sequence in the given source buffer to a UTF32

    code point.

    Parameters

    source [in,out] A pointer to the source buffer. If the conversion succeeds, this pointer will be updated to point to the byte just past the end of the converted sequence.
    sourceEnd A pointer just past the end of the source buffer.
    target [out] The converted code
    flags Whether the conversion is strict or lenient.

    Defined at line 282 of file llvm/include/llvm/Support/ConvertUTF.h

  • VirtRegInfo AnalyzeVirtRegInBundle (MachineInstr & MI, Register Reg, SmallVectorImpl<std::pair<MachineInstr *, unsigned int>> * Ops)

    AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses

    a virtual register. This function should not be called after operator++(),

    it expects a fresh iterator.

    Parameters

    Reg The virtual register to analyze.
    Ops When set, this vector will receive an (MI, OpNum) entry for each operand referring to Reg.

    Defined at line 283 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • bool operator== (MaybeAlign Lhs, Align Rhs)

    Allow equality comparisons between Align and MaybeAlign.

    Defined at line 284 of file llvm/include/llvm/Support/Alignment.h

  • template <class T>
    iterator_range<idf_iterator<T>> inverse_depth_first (const T & G)

    Provide an accessor method to use them in range-based patterns.

    Defined at line 284 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <class T>
    int inverse_depth_first (const T & G)

    Provide an accessor method to use them in range-based patterns.

    Defined at line 284 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • bool isPowerOf2_64 (uint64_t Value)

    Return true if the argument is a power of two > 0 (64 bit edition.)

    Defined at line 284 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T, unsigned LN, unsigned RN, typename C>
    bool operator== (const SmallSet<T, LN, C> & LHS, const SmallSet<T, RN, C> & RHS)

    Equality comparison for SmallSet.

    Iterates over elements of LHS confirming that each element is also a member

    of RHS, and that RHS contains no additional values.

    Equivalent to N calls to RHS.count.

    For small-set mode amortized complexity is O(N^2)

    For large-set mode amortized complexity is linear, worst case is O(N^2) (if

    every hash collides).

    Defined at line 284 of file llvm/include/llvm/ADT/SmallSet.h

  • bool operator!= (MaybeAlign Lhs, Align Rhs)

    Defined at line 285 of file llvm/include/llvm/Support/Alignment.h

  • unsigned int succ_size (const BasicBlock * BB)

    Defined at line 285 of file llvm/include/llvm/IR/CFG.h

  • template <class T>
    T * getOpcodeDef (Register Reg, const MachineRegisterInfo & MRI)

    Templated variant of getOpcodeDef returning a MachineInstr derived T.

    See if Reg is defined by an single def instruction of type T

    Also try to do trivial folding if it's a COPY with

    same types. Returns null otherwise.

    Defined at line 285 of file llvm/include/llvm/CodeGen/GlobalISel/Utils.h

  • bool operator!= (const RawLocationWrapper & A, const RawLocationWrapper & B)

    Defined at line 285 of file llvm/include/llvm/IR/IntrinsicInst.h

  • void recomputeLivenessFlags (MachineBasicBlock & MBB)

    Recomputes dead and kill flags in

    Defined at line 285 of file llvm/lib/CodeGen/LivePhysRegs.cpp

  • bool operator== (Align Lhs, MaybeAlign Rhs)

    Defined at line 286 of file llvm/include/llvm/Support/Alignment.h

  • bool operator!= (Align Lhs, MaybeAlign Rhs)

    Defined at line 287 of file llvm/include/llvm/Support/Alignment.h

  • template <class T>
    bool operator!= (const IntrusiveRefCntPtr<T> & A, std::nullptr_t B)

    Defined at line 287 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • void setExplicitlyUnknownFunctionEntryCount (Function & F, StringRef PassName)

    Analogous to setExplicitlyUnknownBranchWeights, but for functions and their

    entry counts.

    Defined at line 287 of file llvm/lib/IR/ProfDataUtils.cpp

  • MemoryBuffer * unwrap (LLVMMemoryBufferRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 288 of file llvm/include/llvm/Support/MemoryBuffer.h

  • LLVMMemoryBufferRef wrap (const MemoryBuffer * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 288 of file llvm/include/llvm/Support/MemoryBuffer.h

  • iterator_range successors (BasicBlock * BB)

    Defined at line 288 of file llvm/include/llvm/IR/CFG.h

  • raw_ostream & operator<< (raw_ostream & os, SlotIndex li)

    Defined at line 288 of file llvm/include/llvm/CodeGen/SlotIndexes.h

  • bool operator== (MaybeAlign Lhs, MaybeAlign Rhs)

    Allow equality comparisons with MaybeAlign.

    Defined at line 289 of file llvm/include/llvm/Support/Alignment.h

  • bool operator> (const RawLocationWrapper & A, const RawLocationWrapper & B)

    Defined at line 289 of file llvm/include/llvm/IR/IntrinsicInst.h

  • void RemapInstruction (Instruction * I, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Convert the instruction operands from referencing the current values into

    those specified by VM.

    If

    is set and an operand can't be found via

    use the old value. Otherwise assert that this doesn't happen.

    Note that

    only returns

    for SSA values missing from

    Defined at line 289 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • void RemapInstruction (Instruction * I, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Convert the instruction operands from referencing the current values into

    those specified by VM.

    If

    is set and an operand can't be found via

    use the old value. Otherwise assert that this doesn't happen.

    Note that

    only returns

    for SSA values missing from

    Defined at line 289 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • iterator_range successors (const BasicBlock * BB)

    Defined at line 291 of file llvm/include/llvm/IR/CFG.h

  • bool operator!= (MaybeAlign Lhs, MaybeAlign Rhs)

    Defined at line 292 of file llvm/include/llvm/Support/Alignment.h

  • template <typename N>
    bool to_integer (StringRef S, N & Num, unsigned int Base)

    Convert the string

    to an integer of the specified type using

    the radix

    If

    is 0, auto-detects the radix.

    Returns true if the number was successfully converted, false otherwise.

    Defined at line 292 of file llvm/include/llvm/ADT/StringExtras.h

  • bool SkipBitcodeWrapperHeader (const unsigned char *& BufPtr, const unsigned char *& BufEnd, bool VerifyBufferSize)

    SkipBitcodeWrapperHeader - Some systems wrap bc files with a special

    header for padding or other reasons. The format of this header is:

    struct bc_header {

    uint32_t Magic; // 0x0B17C0DE

    uint32_t Version; // Version, currently always 0.

    uint32_t BitcodeOffset; // Offset to traditional bitcode file.

    uint32_t BitcodeSize; // Size of traditional bitcode file.

    ... potentially other gunk ...

    };

    This function is called when we find a file with a matching magic number.

    In this case, skip down to the subsection of the file that is actually a

    BC file.

    If 'VerifyBufferSize' is true, check that the buffer is large enough to

    contain the whole bitcode file.

    Defined at line 292 of file llvm/include/llvm/Bitcode/BitcodeReader.h

  • bool operator== (const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & LHS, const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & RHS)

    Defined at line 293 of file llvm/include/llvm/ADT/iterator.h

  • bool operator>= (const RawLocationWrapper & A, const RawLocationWrapper & B)

    Defined at line 293 of file llvm/include/llvm/IR/IntrinsicInst.h

  • template <typename T>
    int countr_one (T Value)

    Count the number of ones from the least significant bit to the first

    zero bit.

    Ex. countr_one(0x00FF00FF) == 8.

    Only unsigned integral types are allowed.

    Returns std::numeric_limits

    <T

    >::digits on an input of all ones.

    Defined at line 293 of file llvm/include/llvm/ADT/bit.h

  • bool isShiftedMask_32 (uint32_t Value, unsigned int & MaskIdx, unsigned int & MaskLen)

    Return true if the argument contains a non-empty sequence of ones with the

    remainder zero (32 bit version.) Ex. isShiftedMask_32(0x0000FF00U) == true.

    If true,

    will specify the index of the lowest set bit and

    is updated to specify the length of the mask, else neither are

    updated.

    Defined at line 293 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator== (MaybeAlign Lhs, nullopt_t )

    Allow equality comparisons with std::nullopt.

    Defined at line 294 of file llvm/include/llvm/Support/Alignment.h

  • Error writeMemProfV3 (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, bool MemProfFullSchema)

    Write out MemProf Version3

    Defined at line 294 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • bool operator!= (MaybeAlign Lhs, nullopt_t )

    Defined at line 295 of file llvm/include/llvm/Support/Alignment.h

  • bool operator== (nullopt_t , MaybeAlign Rhs)

    Defined at line 296 of file llvm/include/llvm/Support/Alignment.h

  • bool operator!= (nullopt_t , MaybeAlign Rhs)

    Defined at line 297 of file llvm/include/llvm/Support/Alignment.h

  • template <typename T, unsigned LN, unsigned RN, typename C>
    bool operator!= (const SmallSet<T, LN, C> & LHS, const SmallSet<T, RN, C> & RHS)

    Inequality comparison for SmallSet.

    Equivalent to !(LHS == RHS). See operator== for performance notes.

    Defined at line 297 of file llvm/include/llvm/ADT/SmallSet.h

  • bool operator< (const RawLocationWrapper & A, const RawLocationWrapper & B)

    Defined at line 297 of file llvm/include/llvm/IR/IntrinsicInst.h

  • bool isExplicitlyUnknownProfileMetadata (const MDNode & MD)

    Defined at line 297 of file llvm/lib/IR/ProfDataUtils.cpp

  • bool operator< (const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & LHS, const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & RHS)

    Defined at line 297 of file llvm/include/llvm/ADT/iterator.h

  • template <class T, class SetTy>
    idf_ext_iterator<T, SetTy> idf_ext_begin (const T & G, SetTy & S)

    Defined at line 300 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <typename ContainerTy>
    bool hasSingleElement (ContainerTy && C)

    Returns true if the given container only contains a single element.

    Defined at line 300 of file llvm/include/llvm/ADT/STLExtras.h

  • basic_string DebugStr (const Align & A)

    For usage in LLVM_DEBUG macros.

    Defined at line 301 of file llvm/include/llvm/Support/Alignment.h

  • bool operator<= (const RawLocationWrapper & A, const RawLocationWrapper & B)

    Defined at line 301 of file llvm/include/llvm/IR/IntrinsicInst.h

  • raw_ostream & operator<< (raw_ostream & OS, const ValueInfo & VI)

    Defined at line 301 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • Error writeMemProfV4 (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, bool MemProfFullSchema, unique_ptr DataAccessProfileData, unique_ptr MemProfSum)

    Write out MemProf Version4

    Defined at line 302 of file llvm/lib/ProfileData/IndexedMemProfData.cpp

  • template <typename T>
    int bit_width (T Value)

    Returns the number of bits needed to represent Value if Value is nonzero.

    Returns 0 otherwise.

    Ex. bit_width(5) == 3.

    Defined at line 303 of file llvm/include/llvm/ADT/bit.h

  • Value * findScalarElement (Value * V, unsigned int EltNo)

    Given a vector and an element number, see if the scalar value is

    already around as a register, for example if it were inserted then extracted

    from the vector.

    Defined at line 305 of file llvm/lib/Analysis/VectorUtils.cpp

  • bool hasExplicitlyUnknownBranchWeights (const Instruction & I)

    Defined at line 303 of file llvm/lib/IR/ProfDataUtils.cpp

  • basic_string getPGOFuncName (StringRef RawFuncName, LinkageTypes Linkage, StringRef FileName, uint64_t Version)

    Return the modified name for a function suitable to be

    used the key for profile lookup. The function's original

    name is

    and has linkage of type

    The function is defined in module

    Defined at line 303 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <class T, class SetTy>
    idf_ext_iterator<T, SetTy> idf_ext_end (const T & G, SetTy & S)

    Defined at line 305 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • template <typename T, typename = std::enable_if_t<std::is_integral<T>::value &&
                                                                                  !std::is_enum<T>::value>>
    auto seq (T Begin, T End)

    Iterate over an integral type from Begin up to - but not including - End.

    Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for

    forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse

    iteration).

    Defined at line 305 of file llvm/include/llvm/ADT/Sequence.h

  • basic_string DebugStr (const MaybeAlign & MA)

    For usage in LLVM_DEBUG macros.

    Defined at line 305 of file llvm/include/llvm/Support/Alignment.h

  • bool isShiftedMask_64 (uint64_t Value, unsigned int & MaskIdx, unsigned int & MaskLen)

    Return true if the argument contains a non-empty sequence of ones with the

    remainder zero (64 bit version.) If true,

    will specify the index

    of the lowest set bit and

    is updated to specify the length of the

    mask, else neither are updated.

    Defined at line 306 of file llvm/include/llvm/Support/MathExtras.h

  • void RemapDbgRecord (Module * M, DbgRecord * DR, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the Values used in the DbgRecord

    using the value map

    Defined at line 306 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • void RemapDbgRecord (Module * M, DbgRecord * DR, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the Values used in the DbgRecord

    using the value map

    Defined at line 306 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • bool operator< (const CodeGenRegister & A, const CodeGenRegister & B)

    Defined at line 307 of file llvm/utils/TableGen/Common/CodeGenRegisters.h

  • bool operator== (const ValueInfo & A, const ValueInfo & B)

    Defined at line 308 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • bool isCallableCC (CallingConv::ID CC)

    Returns

    true if the calling convention allows the function to be called

    directly or indirectly via a call-like instruction.

    Defined at line 308 of file llvm/include/llvm/IR/CallingConv.h

  • template <typename ContainerTy>
    decltype(auto) getSingleElement (ContainerTy && C)

    Asserts that the given container has a single element and returns that

    element.

    Defined at line 309 of file llvm/include/llvm/ADT/STLExtras.h

  • int64_t computeDelta (SectionEntry * A, SectionEntry * B)

    Defined at line 309 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp

  • bool to_float (const Twine & T, float & Num)

    Defined at line 310 of file llvm/include/llvm/ADT/StringExtras.h

  • template <class T, class SetTy>
    iterator_range<idf_ext_iterator<T, SetTy>> inverse_depth_first_ext (const T & G, SetTy & S)

    Defined at line 310 of file llvm/include/llvm/ADT/DepthFirstIterator.h

  • bool operator== (const CodeGenRegister & A, const CodeGenRegister & B)

    Defined at line 311 of file llvm/utils/TableGen/Common/CodeGenRegisters.h

  • raw_ostream & operator<< (raw_ostream & OS, const APFixedPoint & FX)

    Defined at line 312 of file llvm/include/llvm/ADT/APFixedPoint.h

  • template <typename T, typename... Args>
    IntrusiveRefCntPtr<T> makeIntrusiveRefCnt (Args &&... A)

    Factory function for creating intrusive ref counted pointers.

    Defined at line 313 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h

  • void initializeX86FPStackifierLegacyPass (PassRegistry & )

    Defined at line 314 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • bool to_float (const Twine & T, double & Num)

    Defined at line 314 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator!= (const ValueInfo & A, const ValueInfo & B)

    Defined at line 314 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • template <typename T, typename = std::enable_if_t<std::is_integral<T>::value &&
                                                                                  !std::is_enum<T>::value>>
    auto seq (T Size)

    Iterate over an integral type from 0 up to - but not including - Size.

    Note: Size value has to be within [INTMAX_MIN, INTMAX_MAX - 1] for

    forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse

    iteration).

    Defined at line 315 of file llvm/include/llvm/ADT/Sequence.h

  • error_code make_error_code (BitcodeError E)

    Defined at line 315 of file llvm/include/llvm/Bitcode/BitcodeReader.h

  • template <typename T>
    int bit_width_constexpr (T Value)

    Returns the number of bits needed to represent Value if Value is nonzero.

    Returns 0 otherwise.

    A constexpr version of bit_width.

    Ex. bit_width_constexpr(5) == 3.

    Defined at line 315 of file llvm/include/llvm/ADT/bit.h

  • template <typename T>
    auto drop_begin (T && RangeOrContainer, size_t N)

    Return a range covering

    with the first N elements

    excluded.

    Defined at line 316 of file llvm/include/llvm/ADT/STLExtras.h

  • hash_code hash_value (const APFixedPoint & Val)

    Defined at line 317 of file llvm/include/llvm/ADT/APFixedPoint.h

  • template <size_t kValue>
    size_t ConstantLog2 ()

    Compile time Log2.

    Valid only for positive powers of two.

    Defined at line 317 of file llvm/include/llvm/Support/MathExtras.h

  • void RemapDbgRecordRange (Module * M, iterator_range Range, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the Values used in the DbgRecords

    using the value map

    Defined at line 317 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • void RemapDbgRecordRange (Module * M, iterator_range Range, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the Values used in the DbgRecords

    using the value map

    Defined at line 317 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • void RemapDbgRecordRange (Module * M, int Range, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the Values used in the DbgRecords

    using the value map

    Defined at line 317 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • bool to_float (const Twine & T, long double & Num)

    Defined at line 318 of file llvm/include/llvm/ADT/StringExtras.h

  • bool MaskedValueIsZero (const Value * V, const APInt & Mask, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if 'V

    &

    Mask' is known to be zero. We use this predicate to

    simplify operations downstream. Mask is known to be zero for bits that V

    cannot have.

    This function is defined on values with integer type, values with pointer

    type, and vectors of integers. In the case

    where V is a vector, the mask, known zero, and known one values are the

    same width as the vector element, and the bit is set only if it is true

    for all of the elements in the vector.

    Defined at line 318 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool capturesNothing (CaptureComponents CC)

    Defined at line 320 of file llvm/include/llvm/Support/ModRef.h

  • bool operator< (const ValueInfo & A, const ValueInfo & B)

    Defined at line 320 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • raw_ostream & operator<< (raw_ostream & OS, const Error & E)

    Defined at line 320 of file llvm/include/llvm/Support/Error.h

  • template <typename GraphT>
    void WriteDOTGraphToFile (Function & F, GraphT && Graph, basic_string FileNamePrefix, bool IsSimple)

    Defined at line 320 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h

  • basic_string utostr (uint64_t X, bool isNeg)

    Defined at line 322 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename T>
    auto drop_end (T && RangeOrContainer, size_t N)

    Return a range covering

    with the last N elements

    excluded.

    Defined at line 323 of file llvm/include/llvm/ADT/STLExtras.h

  • template <size_t kValue>
    size_t CTLog2 ()

    Defined at line 323 of file llvm/include/llvm/Support/MathExtras.h

  • bool capturesAnything (CaptureComponents CC)

    Defined at line 324 of file llvm/include/llvm/Support/ModRef.h

  • template <typename T, typename = std::enable_if_t<std::is_integral<T>::value &&
                                                                                  !std::is_enum<T>::value>>
    auto seq_inclusive (T Begin, T End)

    Iterate over an integral type from Begin to End inclusive.

    Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1]

    for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse

    iteration).

    Defined at line 325 of file llvm/include/llvm/ADT/Sequence.h

  • bool capturesAddressIsNullOnly (CaptureComponents CC)

    Defined at line 328 of file llvm/include/llvm/Support/ModRef.h

  • bool operator== (const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & RHS)

    Comparison operators

    Defined at line 328 of file llvm/include/llvm/ADT/ilist_iterator.h

  • void swap (ModuleToPostOrderCGSCCPassAdaptor & LHS, ModuleToPostOrderCGSCCPassAdaptor & RHS)

    Defined at line 328 of file llvm/include/llvm/Analysis/CGSCCPassManager.h

  • StringRef stripDirPrefix (StringRef PathNameStr, uint32_t NumPrefix)

    Strip NumPrefix level of directory name from PathNameStr. If the number of

    directory separators is less than NumPrefix, strip all the directories and

    leave base file name only.

    Defined at line 329 of file llvm/lib/ProfileData/InstrProf.cpp

  • BasicBlock * SplitBlock (BasicBlock * Old, Instruction * SplitPt, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Defined at line 330 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • template <typename T>
    T bit_floor (T Value)

    Returns the largest integral power of two no greater than Value if Value is

    nonzero. Returns 0 otherwise.

    Ex. bit_floor(5) == 4.

    Defined at line 330 of file llvm/include/llvm/ADT/bit.h

  • unsigned int Log2_32 (uint32_t Value)

    Return the floor log base 2 of the specified value, -1 if the value is zero.

    (32 bit edition.)

    Ex. Log2_32(32) == 5, Log2_32(1) == 0, Log2_32(0) == -1, Log2_32(6) == 2

    Defined at line 331 of file llvm/include/llvm/Support/MathExtras.h

  • bool shouldRename (Value * V)

    Defined at line 331 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp

  • bool updatePruning (const DWARFDie & Die, CompileUnit & CU, uint64_t ModulesEndOffset)

    Defined at line 331 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • bool capturesAddress (CaptureComponents CC)

    Defined at line 332 of file llvm/include/llvm/Support/ModRef.h

  • bool operator!= (const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & RHS)

    Defined at line 332 of file llvm/include/llvm/ADT/ilist_iterator.h

  • bool isPresplitCoroSuspendExitEdge (const BasicBlock & Src, const BasicBlock & Dest)

    Returns true if these basic blocks belong to a presplit coroutine and the

    edge corresponds to the 'default' case in the switch statement in the

    pattern:

    %0 = call i8

    .coro.suspend(token none, i1 false)

    switch i8 %0, label %suspend [i8 0, label %resume

    i8 1, label %cleanup]

    i.e. the edge to the `%suspend` BB. This edge is special in that it will

    be elided by coroutine lowering (coro-split), and the `%suspend` BB needs

    to be kept as-is. It's not a real CFG edge - post-lowering, it will end

    up being a `ret`, and it must be thus lowerable to support symmetric

    transfer. For example:

    - this edge is not a loop exit edge if encountered in a loop (and should

    be ignored)

    - must not be split for PGO instrumentation, for example.

    Defined at line 361 of file llvm/lib/Analysis/CFG.cpp

  • int getSplatIndex (ArrayRef Mask)

    If all non-negative

    elements are the same value, return that value.

    If all elements are negative (undefined) or

    contains different

    non-negative values, return -1.

    Defined at line 369 of file llvm/lib/Analysis/VectorUtils.cpp

  • bool canReturn (const Function & F)

    FIXME: this doesn't handle recursion.

    Defined at line 342 of file llvm/lib/Analysis/CFG.cpp

  • void computeAndAddLiveIns (LivePhysRegs & LiveRegs, MachineBasicBlock & MBB)

    Convenience function combining computeLiveIns() and addLiveIns().

    Defined at line 345 of file llvm/lib/CodeGen/LivePhysRegs.cpp

  • bool isPhysRegUsedAfter (Register Reg, int MBI)

    Check if physical register

    is used after

    Defined at line 353 of file llvm/lib/CodeGen/LivePhysRegs.cpp

  • unsigned int ComputeNumSignBits (const Value * Op, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)

    Return the number of times the sign bit of the register is replicated into

    the other bits. We know that at least 1 bit is always equal to the sign

    bit (itself), but other cases can give us information. For example,

    immediately after an "ashr X, 2", we know that the top 3 bits are all

    equal to each other, so we return 3. For vectors, return the number of

    sign bits for the vector element with the mininum number of known sign

    bits.

    Defined at line 336 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeMachineLICMPass (PassRegistry & )

    Defined at line 340 of file llvm/lib/CodeGen/MachineLICM.cpp

  • unsigned int ComputeMaxSignificantBits (const Value * Op, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, unsigned int Depth)

    Get the upper bound on bit size for this Value

    as a signed integer.

    i.e. x == sext(trunc(x to MaxSignificantBits) to bitwidth(x)).

    Similar to the APInt::getSignificantBits function.

    Defined at line 344 of file llvm/lib/Analysis/ValueTracking.cpp

  • void scaleProfData (Instruction & I, uint64_t S, uint64_t T)

    Scaling the profile data attached to 'I' using the ratio of S/T.

    Defined at line 341 of file llvm/lib/IR/ProfDataUtils.cpp

  • void convertCtxProfToYaml (raw_ostream & OS, const PGOCtxProfile & Profile)

    Defined at line 377 of file llvm/lib/ProfileData/PGOCtxProfReader.cpp

  • void initializeMachineSinkingLegacyPass (PassRegistry & )

    Defined at line 331 of file llvm/lib/CodeGen/MachineSink.cpp

  • void initializeCompressEVEXPassPass (PassRegistry & )

    Defined at line 358 of file llvm/lib/Target/X86/X86CompressEVEX.cpp

  • FunctionPass * createGreedyRegisterAllocator ()

    Greedy register allocation pass - This pass implements a global register

    allocator for optimized builds.

    Defined at line 329 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • FunctionPass * createGreedyRegisterAllocator (RegAllocFilterFunc F)

    Defined at line 333 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • std::pair<LaneBitmask, LaneBitmask> AnalyzeVirtRegLanesInBundle (const MachineInstr & MI, Register Reg, const MachineRegisterInfo & MRI, const TargetRegisterInfo & TRI)

    Return a pair of lane masks (reads, writes) indicating which lanes this

    instruction uses with Reg.

    Defined at line 313 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • void initializeX86OptimizeLEAPassPass (PassRegistry & )

    Defined at line 315 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • void initializeRAGreedyLegacyPass (PassRegistry & )

    Defined at line 311 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • unique_ptr splitFunctionsOutOfModule (Module * M, const std::vector<Function *> & F, ValueToValueMapTy & VMap)

    Given a module and a list of functions in the module, split the functions

    OUT of the specified module, and place them in the new module.

    Defined at line 295 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • void initializeReplaceWithVeclibLegacyPass (PassRegistry & )

    Defined at line 279 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • void initializeShrinkWrapLegacyPass (PassRegistry & )

    Defined at line 301 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • void initializeSinkingLegacyPassPass (PassRegistry & )

    Defined at line 273 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • void initializeStackFrameLayoutAnalysisLegacyPass (PassRegistry & )

    Defined at line 306 of file llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp

  • void RemapFunction (Function & F, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the operands, metadata, arguments, and instructions of a function.

    Calls

    on prefix data, prologue data, and personality

    function; calls

    on each attached MDNode; remaps the

    argument types using the provided

    and calls

    on every instruction.

    Defined at line 334 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • void RemapFunction (Function & F, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Remap the operands, metadata, arguments, and instructions of a function.

    Calls

    on prefix data, prologue data, and personality

    function; calls

    on each attached MDNode; remaps the

    argument types using the provided

    and calls

    on every instruction.

    Defined at line 334 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • template <typename RangeT, typename WrappedIteratorT =
                                                               decltype(std::begin(std::declval<RangeT>()))>
    iterator_range<pointee_iterator<WrappedIteratorT>> make_pointee_range (RangeT && Range)

    Defined at line 335 of file llvm/include/llvm/ADT/iterator.h

  • template <typename RangeT, typename WrappedIteratorT =
                                                               decltype(std::begin(std::declval<RangeT>()))>
    iterator_range<pointee_iterator<WrappedIteratorT>> make_pointee_range (RangeT && Range)

    Defined at line 335 of file llvm/include/llvm/ADT/iterator.h

  • template <typename RangeT, typename WrappedIteratorT =
                                                               decltype(std::begin(std::declval<RangeT>()))>
    int make_pointee_range (RangeT && Range)

    Defined at line 335 of file llvm/include/llvm/ADT/iterator.h

  • bool capturesReadProvenanceOnly (CaptureComponents CC)

    Defined at line 336 of file llvm/include/llvm/Support/ModRef.h

  • unsigned int Log2_64 (uint64_t Value)

    Return the floor log base 2 of the specified value, -1 if the value is zero.

    (64 bit edition.)

    Defined at line 337 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
    auto enum_seq (EnumT Begin, EnumT End)

    Iterate over an enum type from Begin up to - but not including - End.

    Note: `enum_seq` will generate each consecutive value, even if no

    enumerator with that value exists.

    Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for

    forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse

    iteration).

    Defined at line 337 of file llvm/include/llvm/ADT/Sequence.h

  • basic_string itostr (int64_t X)

    Defined at line 337 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename ErrT, typename... ArgTs>
    Error make_error (ArgTs &&... Args)

    Make a Error instance representing failure using the given error info

    type.

    Defined at line 340 of file llvm/include/llvm/Support/Error.h

  • BitVector get_thread_affinity_mask ()

    Returns a mask that represents on which hardware thread, core, CPU, NUMA

    group, the calling thread can be executed. On Windows, threads cannot

    cross CPU sockets boundaries.

    Defined at line 340 of file llvm/lib/Support/Unix/Threading.inc

  • void collectCmpOps (CmpInst * Comparison, SmallVectorImpl<Value *> & CmpOperands)

    Collect relevant operations from Comparison that we may want to insert copies

    for.

    Defined at line 340 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp

  • PhysRegInfo AnalyzePhysRegInBundle (const MachineInstr & MI, Register Reg, const TargetRegisterInfo * TRI)

    AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses

    a physical register. This function should not be called after operator++(),

    it expects a fresh iterator.

    Parameters

    Reg The physical register to analyze.

    Defined at line 340 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • StringRef getPGOFuncNameMetadataName ()

    Defined at line 341 of file llvm/include/llvm/ProfileData/InstrProf.h

  • bool capturesFullProvenance (CaptureComponents CC)

    Defined at line 341 of file llvm/include/llvm/Support/ModRef.h

  • const RecTy * resolveTypes (const RecTy * T1, const RecTy * T2)

    Find a common type that T1 and T2 convert to.

    Return 0 if no such type exists.

    Defined at line 342 of file llvm/lib/TableGen/Record.cpp

  • bool operator== (const attribute_iterator & LHS, const attribute_iterator & RHS)

    Defined at line 341 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • StringRef getPGONameMetadataName ()

    Defined at line 343 of file llvm/include/llvm/ProfileData/InstrProf.h

  • Constant * MapValue (const Constant * V, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Version of MapValue with type safety for Constant.

    Defined at line 343 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • Constant * MapValue (const Constant * V, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)

    Version of MapValue with type safety for Constant.

    Defined at line 343 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h

  • unsigned int Log2_32_Ceil (uint32_t Value)

    Return the ceil log base 2 of the specified value, 32 if the value is zero.

    (32 bit edition).

    Ex. Log2_32_Ceil(32) == 5, Log2_32_Ceil(1) == 0, Log2_32_Ceil(6) == 3

    Defined at line 344 of file llvm/include/llvm/Support/MathExtras.h

  • basic_string toString (const APInt & I, unsigned int Radix, bool Signed, bool formatAsCLiteral, bool UpperCase, bool InsertSeparators)

    Defined at line 344 of file llvm/include/llvm/ADT/StringExtras.h

  • StringRef getStrippedSourceFileName (const GlobalObject & GO)

    Defined at line 344 of file llvm/lib/ProfileData/InstrProf.cpp

  • Value * GetPointerBaseWithConstantOffset (Value * Ptr, int64_t & Offset, const DataLayout & DL, bool AllowNonInbounds)

    Analyze the specified pointer to see if it can be expressed as a base

    pointer plus a constant offset. Return the base and offset to the caller.

    This is a wrapper around Value::stripAndAccumulateConstantOffsets that

    creates and later unpacks the required APInt.

    Defined at line 344 of file llvm/include/llvm/Analysis/ValueTracking.h

  • unsigned int get_cpus ()

    Returns how many physical CPUs or NUMA groups the system has.

    Defined at line 345 of file llvm/lib/Support/Unix/Threading.inc

  • bool capturesAnyProvenance (CaptureComponents CC)

    Defined at line 345 of file llvm/include/llvm/Support/ModRef.h

  • bool hasDisableAllTransformsHint (const Loop * L)

    Look for the loop attribute that disables all transformation heuristic.

    Defined at line 345 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <typename T>
    T bit_ceil (T Value)

    Returns the smallest integral power of two no smaller than Value if Value is

    nonzero. Returns 1 otherwise.

    Ex. bit_ceil(5) == 8.

    The return value is undefined if the input is larger than the largest power

    of two representable in T.

    Defined at line 345 of file llvm/include/llvm/ADT/bit.h

  • LLVMAttributeRef wrap (Attribute Attr)

    Specialized opaque value conversions.

    Defined at line 346 of file llvm/include/llvm/IR/Attributes.h

  • bool operator!= (const DWARFDie::attribute_iterator & LHS, const DWARFDie::attribute_iterator & RHS)

    Defined at line 346 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • const IntrinsicData * getIntrinsicWithChain (unsigned int IntNo)

    Find Intrinsic data by intrinsic ID

    Defined at line 347 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h

  • bool isKnownNeverSNaN (Register Val, const MachineRegisterInfo & MRI)

    Returns true if

    can be assumed to never be a signaling NaN.

    Defined at line 349 of file llvm/include/llvm/CodeGen/GlobalISel/Utils.h

  • bool capturesAll (CaptureComponents CC)

    Defined at line 349 of file llvm/include/llvm/Support/ModRef.h

  • bool hasDisableLICMTransformsHint (const Loop * L)

    Look for the loop attribute that disables the LICM transformation heuristics.

    Defined at line 349 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool operator== (const MachineMemOperand & LHS, const MachineMemOperand & RHS)

    @

    }

    Defined at line 349 of file llvm/include/llvm/CodeGen/MachineMemOperand.h

  • void initializeSelectOptimizePass (PassRegistry & )

    Defined at line 350 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • unsigned int Log2_64_Ceil (uint64_t Value)

    Return the ceil log base 2 of the specified value, 64 if the value is zero.

    (64 bit edition.)

    Defined at line 350 of file llvm/include/llvm/Support/MathExtras.h

  • BasicBlock * SplitBlock (BasicBlock * Old, Instruction * SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Defined at line 350 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • Attribute unwrap (LLVMAttributeRef Attr)

    Specialized opaque value conversions.

    Defined at line 351 of file llvm/include/llvm/IR/Attributes.h

  • bool operator== (const DWARFDie & LHS, const DWARFDie & RHS)

    Defined at line 351 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
    auto enum_seq (EnumT Begin, EnumT End, force_iteration_on_noniterable_enum_t )

    Iterate over an enum type from Begin up to - but not including - End, even

    when `EnumT` is not marked as safely iterable by `enum_iteration_traits`.

    Note: `enum_seq` will generate each consecutive value, even if no

    enumerator with that value exists.

    Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for

    forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse

    iteration).

    Defined at line 352 of file llvm/include/llvm/ADT/Sequence.h

  • basic_string toString (const APSInt & I, unsigned int Radix)

    Defined at line 353 of file llvm/include/llvm/ADT/StringExtras.h

  • void updateChildPruning (const DWARFDie & Die, CompileUnit & CU, CompileUnit::DIEInfo & ChildInfo)

    Defined at line 353 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • TransformationMode hasUnrollTransformation (const Loop * L)

    @

    {

    Get the mode for LLVM's supported loop transformations.

    Defined at line 353 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • const Value * GetPointerBaseWithConstantOffset (const Value * Ptr, int64_t & Offset, const DataLayout & DL, bool AllowNonInbounds)

    Defined at line 354 of file llvm/include/llvm/Analysis/ValueTracking.h

  • bool operator!= (const DWARFDie & LHS, const DWARFDie & RHS)

    Defined at line 356 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • template <typename U, typename V, typename T = common_uint<U, V>>
    T MinAlign (U A, V B)

    A and B are either alignments or offsets. Return the minimum alignment that

    may be assumed after adding the two together.

    Defined at line 357 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator== (int64_t V1, const APSInt & V2)

    Defined at line 358 of file llvm/include/llvm/ADT/APSInt.h

  • APFloatBase::ExponentType exponentZero (const fltSemantics & semantics)

    Defined at line 358 of file llvm/lib/Support/APFloat.cpp

  • template <typename CGSCCPassT>
    ModuleToPostOrderCGSCCPassAdaptor createModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT && Pass)

    A function to deduce a function pass type and wrap it in the

    templated adaptor.

    Defined at line 358 of file llvm/include/llvm/Analysis/CGSCCPassManager.h

  • bool operator!= (int64_t V1, const APSInt & V2)

    Defined at line 359 of file llvm/include/llvm/ADT/APSInt.h

  • template <class ItTy, class FuncTy>
    int map_iterator (ItTy I, FuncTy F)

    map_iterator - Provide a convenient way to create mapped_iterators, just like

    make_pair is useful for creating pairs...

    Defined at line 359 of file llvm/include/llvm/ADT/STLExtras.h

  • template <class ItTy, class FuncTy>
    mapped_iterator<ItTy, FuncTy> map_iterator (ItTy I, FuncTy F)

    map_iterator - Provide a convenient way to create mapped_iterators, just like

    make_pair is useful for creating pairs...

    Defined at line 359 of file llvm/include/llvm/ADT/STLExtras.h

  • bool operator<= (int64_t V1, const APSInt & V2)

    Defined at line 360 of file llvm/include/llvm/ADT/APSInt.h

  • bool operator< (const DWARFDie & LHS, const DWARFDie & RHS)

    Defined at line 360 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • template <typename T>
    T bit_ceil_constexpr (T Value)

    Returns the smallest integral power of two no smaller than Value if Value is

    nonzero. Returns 1 otherwise.

    Ex. bit_ceil(5) == 8.

    The return value is undefined if the input is larger than the largest power

    of two representable in T.

    Defined at line 360 of file llvm/include/llvm/ADT/bit.h

  • bool isUniformLoop (Loop * Lp, Loop * OuterLp)

    Return true if the inner loop

    is uniform with regard to the outer loop

    (i.e., if the outer loop is vectorized, all the vector lanes

    executing the inner loop will execute the same iterations). This check is

    very constrained for now but it will be relaxed in the future.

    is

    considered uniform if it meets all the following conditions:

    1) it has a canonical IV (starting from 0 and with stride 1),

    2) its latch terminator is a conditional branch and,

    3) its latch condition is a compare instruction whose operands are the

    canonical IV and an OuterLp invariant.

    This check doesn't take into account the uniformity of other conditions not

    related to the loop latch because they don't affect the loop uniformity.

    NOTE: We decided to keep all these checks and its associated documentation

    together so that we can easily have a picture of the current supported loop

    nests. However, some of the current checks don't depend on

    and

    would be redundantly executed for each

    if we invoked this function for

    different candidate outer loops. This is not the case for now because we

    don't currently have the infrastructure to evaluate multiple candidate outer

    loops and

    will be a fixed parameter while we only support explicit

    outer loop vectorization. It's also very likely that these checks go away

    before introducing the aforementioned infrastructure. However, if this is not

    the case, we should move the

    independent checks to a separate

    function that is only executed once for each

    Defined at line 360 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • bool operator>= (int64_t V1, const APSInt & V2)

    Defined at line 361 of file llvm/include/llvm/ADT/APSInt.h

  • bool operator< (int64_t V1, const APSInt & V2)

    Defined at line 362 of file llvm/include/llvm/ADT/APSInt.h

  • bool operator!= (const MachineMemOperand & LHS, const MachineMemOperand & RHS)

    Defined at line 362 of file llvm/include/llvm/CodeGen/MachineMemOperand.h

  • template <typename RangeT, typename WrappedIteratorT =
                                                               decltype(std::begin(std::declval<RangeT>()))>
    int make_pointer_range (RangeT && Range)

    Defined at line 362 of file llvm/include/llvm/ADT/iterator.h

  • template <typename RangeT, typename WrappedIteratorT =
                                                               decltype(std::begin(std::declval<RangeT>()))>
    iterator_range<pointer_iterator<WrappedIteratorT>> make_pointer_range (RangeT && Range)

    Defined at line 362 of file llvm/include/llvm/ADT/iterator.h

  • bool operator> (int64_t V1, const APSInt & V2)

    Defined at line 363 of file llvm/include/llvm/ADT/APSInt.h

  • APFloatBase::ExponentType exponentInf (const fltSemantics & semantics)

    Defined at line 363 of file llvm/lib/Support/APFloat.cpp

  • basic_string getIRPGONameForGlobalObject (const GlobalObject & GO, LinkageTypes Linkage, StringRef FileName)

    The PGO name has the format [

    <filepath

    >;]

    <mangled

    -name> where

    <filepath

    >; is

    provided if linkage is local and is used to discriminate possibly identical

    mangled names. ";" is used because it is unlikely to be found in either

    <filepath

    > or

    <mangled

    -name>.

    Older compilers used getPGOFuncName() which has the format

    [

    <filepath

    >:]

    <mangled

    -name>. This caused trouble for Objective-C functions

    which commonly have :'s in their names. We still need to compute this name to

    lookup functions from profiles built by older compilers.

    Defined at line 363 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <class ContainerTy, class FuncTy>
    auto map_range (ContainerTy && C, FuncTy F)

    Defined at line 364 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
    auto enum_seq_inclusive (EnumT Begin, EnumT End)

    Iterate over an enum type from Begin to End inclusive.

    Note: `enum_seq_inclusive` will generate each consecutive value, even if no

    enumerator with that value exists.

    Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1]

    for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse

    iteration).

    Defined at line 364 of file llvm/include/llvm/ADT/Sequence.h

  • raw_ostream & operator<< (raw_ostream & OS, const APSInt & I)

    Defined at line 365 of file llvm/include/llvm/ADT/APSInt.h

  • void initializeScalarizerLegacyPassPass (PassRegistry & )

    Defined at line 367 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp

  • uint64_t MinAlign (uint64_t A, uint64_t B)

    Fallback when arguments aren't integral.

    Defined at line 367 of file llvm/include/llvm/Support/MathExtras.h

  • BasicBlock * splitBlockBefore (BasicBlock * Old, Instruction * SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)

    Defined at line 367 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • void analyzeContextInfo (const DWARFDie & DIE, unsigned int ParentIdx, CompileUnit & CU, DeclContext * CurrentDeclContext, DeclContextTree & Contexts, uint64_t ModulesEndOffset, DWARFLinkerBase::SwiftInterfacesMapTy * ParseableSwiftInterfaces, std::function<void (const Twine &, const DWARFDie &)> ReportWarning)

    Recursive helper to build the global DeclContext information and

    gather the child->parent relationships in the original compile unit.

    This function uses the same work list approach as lookForDIEsToKeep.

    Returns

    true when this DIE and all of its children are only

    forward declarations to types defined in external clang modules

    (i.e., forward declarations that are children of a DW_TAG_module).

    Defined at line 367 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • LLVMContext * unwrap (LLVMContextRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 368 of file llvm/include/llvm/IR/LLVMContext.h

  • LLVMContextRef wrap (const LLVMContext * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 368 of file llvm/include/llvm/IR/LLVMContext.h

  • APFloatBase::ExponentType exponentNaN (const fltSemantics & semantics)

    Defined at line 368 of file llvm/lib/Support/APFloat.cpp

  • template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
    T rotl (T V, int R)

    Defined at line 369 of file llvm/include/llvm/ADT/bit.h

  • optional lookupPGONameFromMetadata (MDNode * MD)

    Defined at line 370 of file llvm/lib/ProfileData/InstrProf.cpp

  • raw_ostream & operator<< (raw_ostream & R, const ore::NV & Arg)

    Defined at line 371 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • LLVMContext ** unwrap (LLVMContextRef * Tys)

    Specialized opaque context conversions.

    Defined at line 372 of file llvm/include/llvm/IR/LLVMContext.h

  • raw_ostream & operator<< (raw_ostream & OS, const object::WasmSymbol & Sym)

    Defined at line 372 of file llvm/include/llvm/Object/Wasm.h

  • uint64_t NextPowerOf2 (uint64_t A)

    Returns the next power of two (in 64-bits) that is strictly greater than A.

    Returns zero on overflow.

    Defined at line 373 of file llvm/include/llvm/Support/MathExtras.h

  • TransformationMode hasUnrollAndJamTransformation (const Loop * L)

    Defined at line 374 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • LLVMContextRef * wrap (const LLVMContext ** Tys)

    Defined at line 376 of file llvm/include/llvm/IR/LLVMContext.h

  • template <typename GraphType>
    raw_ostream & WriteGraph (raw_ostream & O, const GraphType & G, bool ShortNames, const Twine & Title)

    Defined at line 376 of file llvm/include/llvm/Support/GraphWriter.h

  • template <class RemarkT>
    decltype(auto) operator<< (RemarkT && R, const InlineCost & IC)

    Defined at line 376 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • StringRef getOrdinalSuffix (unsigned int Val)

    Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).

    Defined at line 378 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
    auto enum_seq_inclusive (EnumT Begin, EnumT End, force_iteration_on_noniterable_enum_t )

    Iterate over an enum type from Begin to End inclusive, even when `EnumT`

    is not marked as safely iterable by `enum_iteration_traits`.

    Note: `enum_seq_inclusive` will generate each consecutive value, even if no

    enumerator with that value exists.

    Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1]

    for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse

    iteration).

    Defined at line 379 of file llvm/include/llvm/ADT/Sequence.h

  • Error createError (const Twine & Err)

    A bunch of private, handy routines.

    Defined at line 381 of file llvm/lib/Support/APFloat.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const MCSymbol & Sym)

    Defined at line 381 of file llvm/include/llvm/MC/MCSymbol.h

  • template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
    T rotr (T V, int R)

    Defined at line 382 of file llvm/include/llvm/ADT/bit.h

  • unsigned int partCountForBits (unsigned int bits)

    Defined at line 385 of file llvm/lib/Support/APFloat.cpp

  • uint64_t PowerOf2Ceil (uint64_t A)

    Returns the power of two which is greater than or equal to the given value.

    Essentially, it is a ceil operation across the domain of powers of two.

    Defined at line 385 of file llvm/include/llvm/Support/MathExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const CallsiteInfo & SNI)

    Defined at line 385 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • TypeSize operator* (const TypeSize & LHS, const int RHS)

    Additional operators needed to avoid ambiguous parses

    because of the implicit conversion hack.

    Defined at line 386 of file llvm/include/llvm/Support/TypeSize.h

  • TypeSize operator* (const TypeSize & LHS, const unsigned int RHS)

    Defined at line 389 of file llvm/include/llvm/Support/TypeSize.h

  • MachineInstrBuilder BuildMI (MachineFunction & MF, const MIMetadata & MIMD, const MCInstrDesc & MCID)

    Builder interface. Specify how to create the initial instruction itself.

    Defined at line 391 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • unsigned int decDigitValue (unsigned int c)

    Returns 0U-9U. Return values >= 10U are not digits.

    Defined at line 391 of file llvm/lib/Support/APFloat.cpp

  • Value * getSplatValue (const Value * V)

    Get splat value if the input is a splat vector or return nullptr.

    The value may be extracted from a splat constants vector or from

    a sequence of instructions that broadcast a single value into a vector.

    Defined at line 391 of file llvm/lib/Analysis/VectorUtils.cpp

  • basic_string getIRPGOObjectName (const GlobalObject & GO, bool InLTO, MDNode * PGONameMetadata)

    Returns the PGO object name. This function has some special handling

    when called in LTO optimization. The following only applies when calling in

    LTO passes (when

    is true): LTO's internalization privatizes many

    global linkage symbols. This happens after value profile annotation, but

    those internal linkage functions should not have a source prefix.

    Additionally, for ThinLTO mode, exported internal functions are promoted

    and renamed. We need to ensure that the original internal PGO name is

    used when computing the GUID that is compared against the profiled GUIDs.

    To differentiate compiler generated internal symbols from original ones,

    PGOFuncName meta data are created and attached to the original internal

    symbols in the value profile annotation step

    (PGOUseFunc::annotateIndirectCallSites). If a symbol does not have the meta

    data, its original linkage must be non-internal.

    Defined at line 391 of file llvm/lib/ProfileData/InstrProf.cpp

  • TypeSize operator* (const TypeSize & LHS, const int64_t RHS)

    Defined at line 392 of file llvm/include/llvm/Support/TypeSize.h

  • template <typename U, typename V, typename T = common_uint<U, V>>
    T divideCeil (U Numerator, V Denominator)

    Returns the integer ceil(Numerator / Denominator). Unsigned version.

    Guaranteed to never overflow.

    Defined at line 394 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename GraphType>
    basic_string WriteGraph (const GraphType & G, const Twine & Name, bool ShortNames, const Twine & Title, basic_string Filename)

    Writes graph into a provided

    If

    is empty, generates a random one.

    Returns

    The resulting filename, or an empty string if writing

    failed.

    Defined at line 394 of file llvm/include/llvm/Support/GraphWriter.h

  • TypeSize operator* (const int LHS, const TypeSize & RHS)

    Defined at line 395 of file llvm/include/llvm/Support/TypeSize.h

  • Boolean isLegalUTF8 (const UTF8 * source, int length)

    Utility routine to tell whether a sequence of bytes is legal UTF-8.

    This must be called with the length pre-determined by the first byte.

    If not calling this from ConvertUTF8to*, then the length can be set by:

    length = trailingBytesForUTF8[*source]+1;

    and the sequence is illegal right away if there aren't that many bytes

    available.

    If presented with a length > 4, this returns false. The Unicode

    definition of UTF-8 goes up to 4-byte sequences.

    Defined at line 397 of file llvm/lib/Support/ConvertUTF.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const Node & N)

    Print the name of this node's function.

    Defined at line 398 of file llvm/include/llvm/Analysis/LazyCallGraph.h

  • TypeSize operator* (const unsigned int LHS, const TypeSize & RHS)

    Defined at line 398 of file llvm/include/llvm/Support/TypeSize.h

  • MachineInstrBuilder BuildMI (MachineFunction & MF, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)

    This version of the builder sets up the first operand as a

    destination virtual register.

    Defined at line 399 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename T>
    int hash_value (const T & Value)

    Provide a default implementation of `hash_value` when `addHash(const T

    &

    )`

    is supported.

    Defined at line 399 of file llvm/include/llvm/Support/HashBuilder.h

  • template <typename T>
    std::enable_if_t<is_detected<hashbuilder_detail::HashCodeHashBuilder::HasAddHashT, T>::value, hash_code> hash_value (const T & Value)

    Provide a default implementation of `hash_value` when `addHash(const T

    &

    )`

    is supported.

    Defined at line 399 of file llvm/include/llvm/Support/HashBuilder.h

  • TypeSize operator* (const int64_t LHS, const TypeSize & RHS)

    Defined at line 401 of file llvm/include/llvm/Support/TypeSize.h

  • uint64_t divideCeil (uint64_t Numerator, uint64_t Denominator)

    Fallback when arguments aren't integral.

    Defined at line 401 of file llvm/include/llvm/Support/MathExtras.h

  • Expected readExponent (StringRef::iterator begin, StringRef::iterator end)

    Return the value of a decimal exponent of the form

    [+-]ddddddd.

    If the exponent overflows, returns a large exponent with the

    appropriate sign.

    Defined at line 402 of file llvm/lib/Support/APFloat.cpp

  • void PointerMayBeCaptured (const Value * V, CaptureTracker * Tracker, unsigned int MaxUsesToExplore)

    PointerMayBeCaptured - Visit the value and the values derived from it and

    find values which appear to be capturing the pointer value. This feeds

    results into and is controlled by the CaptureTracker object.

    MaxUsesToExplore specifies how many uses the analysis should explore for

    one value before giving up due too "too many uses". If MaxUsesToExplore

    is zero, a default value is assumed.

    This function only considers captures of the passed value via its def-use

    chain, without considering captures of values it may be based on, or

    implicit captures such as for external globals.

    Defined at line 403 of file llvm/lib/Analysis/CaptureTracking.cpp

  • TypeSize operator* (const uint64_t LHS, const TypeSize & RHS)

    Defined at line 404 of file llvm/include/llvm/Support/TypeSize.h

  • void expectCanParseBool (StringRef S, bool Expected)

    Defined at line 404 of file llvm/unittests/Support/YAMLParserTest.cpp

  • bool isUniformLoopNest (Loop * Lp, Loop * OuterLp)

    Return true if

    and all its nested loops are uniform with regard to

    Defined at line 405 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • template <typename ContainerTy>
    auto reverse (ContainerTy && C)

    Returns an iterator_range over the given container which iterates in reverse.

    Does not mutate the container.

    Defined at line 406 of file llvm/include/llvm/ADT/STLExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const Session::MemoryRegionInfo & MRI)

    Defined at line 406 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • bool hasELFMagic (StringRef FilePath)

    Defined at line 408 of file llvm/lib/Debuginfod/Debuginfod.cpp

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)

    This version of the builder inserts the newly-built instruction before

    the given position in the given MachineBasicBlock, and sets up the first

    operand as a destination virtual register.

    Defined at line 409 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename U, typename V>
    bool divideSignedWouldOverflow (U Numerator, V Denominator)

    Check whether divideCeilSigned or divideFloorSigned would overflow. This

    happens only when Numerator = INT_MIN and Denominator = -1.

    Defined at line 410 of file llvm/include/llvm/Support/MathExtras.h

  • void expectCannotParseBool (StringRef S)

    Defined at line 410 of file llvm/unittests/Support/YAMLParserTest.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const Init & I)

    Defined at line 412 of file llvm/include/llvm/TableGen/Record.h

  • Value * getArgumentAliasingToReturnedPointer (CallBase * Call, bool MustPreserveNullness)

    Defined at line 415 of file llvm/include/llvm/Analysis/ValueTracking.h

  • raw_ostream & operator<< (raw_ostream & OS, const Session::SymbolInfoMap & SIM)

    Defined at line 415 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void writeNewOffsetsTo (MCStreamer & Out, DataExtractor & Data, DenseMap<uint64_t, uint64_t> & OffsetRemapping, uint64_t & Offset, const uint64_t Size, uint32_t OldOffsetSize, uint32_t NewOffsetSize)

    Defined at line 415 of file llvm/lib/DWP/DWP.cpp

  • template <typename U, typename V, typename T = common_sint<U, V>>
    T divideCeilSigned (U Numerator, V Denominator)

    Returns the integer ceil(Numerator / Denominator). Signed version.

    Overflow is explicitly forbidden with an assert.

    Defined at line 417 of file llvm/include/llvm/Support/MathExtras.h

  • IntegerType * getInductionIntegerTy (const DataLayout & DL, Type * Ty)

    Defined at line 417 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • bool isAlmostDeadIV (PHINode * IV, BasicBlock * LatchBlock, Value * Cond)

    Return true if the induction variable

    in a Loop whose latch is

    would become dead if the exit test

    were removed.

    Conservatively returns false if analysis is insufficient.

    Defined at line 471 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • int getOwningLazyBitcodeModule (int && Buffer, LLVMContext & Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks)

    Like getLazyBitcodeModule, except that the module takes ownership of

    the memory buffer if successful. If successful, this moves Buffer. On

    error, this *does not* move Buffer. If IsImporting is true, this module is

    being parsed for ThinLTO importing into another module.

    Defined at line of file

  • std::optional<ValueAndVReg> getIConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo & MRI, bool LookThroughInstrs)

    If

    is defined by a statically evaluable chain of instructions rooted

    on a G_CONSTANT returns its APInt value and def register.

    Defined at line 434 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • raw_ostream & operator<< (raw_ostream & , const LoopNest & )

    Defined at line 437 of file llvm/lib/Analysis/LoopNestAnalysis.cpp

  • std::optional<ValueAndVReg> getAnyConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo & MRI, bool LookThroughInstrs, bool LookThroughAnyExt)

    If

    is defined by a statically evaluable chain of instructions rooted

    on a G_CONSTANT or G_FCONSTANT returns its value as APInt and def register.

    Defined at line 440 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void deleteDeadLoop (Loop * L, DominatorTree * DT, ScalarEvolution * SE, LoopInfo * LI, MemorySSA * MSSA)

    This function deletes dead loops. The caller of this function needs to

    guarantee that the loop is infact dead.

    The function requires a bunch or prerequisites to be present:

    - The loop needs to be in LCSSA form

    - The loop needs to have a Preheader

    - A unique dedicated exit block must exist

    This also updates the relevant analysis information in

    and

    if pointers to those are provided.

    It also updates the loop PM if an updater struct is provided.

    Defined at line 485 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • Boolean isLegalUTF8Sequence (const UTF8 * source, const UTF8 * sourceEnd)

    Exported function to return whether a UTF-8 sequence is legal or not.

    This is not used here; it's just exported.

    Defined at line 428 of file llvm/lib/Support/ConvertUTF.cpp

  • bool isSplatValue (const Value * V, int Index, unsigned int Depth)

    Return true if each element of the vector value

    is poisoned or equal to

    every other non-poisoned element. If an index element is specified, either

    every element of the vector is poisoned or the element at that index is not

    poisoned and equal to every other non-poisoned element.

    This may be more powerful than the related getSplatValue() because it is

    not limited by finding a scalar source value to a splatted vector.

    Defined at line 406 of file llvm/lib/Analysis/VectorUtils.cpp

  • unsigned int getUTF8SequenceSize (const UTF8 * source, const UTF8 * sourceEnd)

    Exported function to return the size of the first utf-8 code unit sequence,

    Or 0 if the sequence is not valid;

    Defined at line 440 of file llvm/lib/Support/ConvertUTF.cpp

  • std::optional<FPValueAndVReg> getFConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo & MRI, bool LookThroughInstrs)

    If

    is defined by a statically evaluable chain of instructions rooted

    on a G_FCONSTANT returns its APFloat value and def register.

    Defined at line 448 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool isGPUProfTarget (const Module & M)

    Determines whether module targets a GPU eligable for PGO

    instrumentation

    Defined at line 482 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool getShuffleDemandedElts (int SrcWidth, ArrayRef Mask, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS, bool AllowUndefElts)

    Transform a shuffle mask's output demanded element mask into demanded

    element masks for the 2 operands, returns false if the mask isn't valid.

    Both

    and

    are initialised to [SrcWidth].

    permits "-1" indices to be treated as undef.

    Defined at line 452 of file llvm/lib/Analysis/VectorUtils.cpp

  • const ConstantFP * getConstantFPVRegVal (Register VReg, const MachineRegisterInfo & MRI)

    Defined at line 461 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • basic_string getPGOFuncName (const Function & F, bool InLTO, uint64_t Version)

    Please use getIRPGOFuncName for LLVM IR instrumentation. This function is

    for front-end (Clang, etc) instrumentation.

    Return the modified name for function

    suitable to be

    used the key for profile lookup. Variable

    indicates if this

    is called in LTO optimization passes.

    Defined at line 421 of file llvm/lib/ProfileData/InstrProf.cpp

  • void initializeMachineSchedulerLegacyPass (PassRegistry & )

    Defined at line 418 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • void initializeMachineVerifierLegacyPassPass (PassRegistry & )

    Defined at line 410 of file llvm/lib/CodeGen/MachineVerifier.cpp

  • basic_string getIRPGOFuncName (const Function & F, bool InLTO)

    Returns

    the modified name for function

    suitable to be

    used as the key for IRPGO profile lookup.

    indicates if this is

    called from LTO optimization passes.

    Defined at line 410 of file llvm/lib/ProfileData/InstrProf.cpp

  • void initializeX86ExecutionDomainFixPass (PassRegistry & )

    Defined at line 405 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • void getVisibleToRegularObjVtableGUIDs (ModuleSummaryIndex & Index, DenseSet<GlobalValue::GUID> & VisibleToRegularObjSymbols, function_ref<bool (StringRef)> IsVisibleToRegularObj)

    Defined at line of file

  • TransformationMode hasVectorizeTransformation (const Loop * L)

    Defined at line 392 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool operator< (const DWARFVerifier::DieRangeInfo & LHS, const DWARFVerifier::DieRangeInfo & RHS)

    Defined at line 418 of file llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h

  • TypeSize alignTo (TypeSize Size, uint64_t Align)

    Returns a TypeSize with a known minimum size that is the next integer

    (mod 2**64) that is greater than or equal to

    and is a multiple

    of

    must be non-zero.

    Similar to the alignTo functions in MathExtras.h

    Defined at line 418 of file llvm/include/llvm/Support/TypeSize.h

  • void initializeRegisterCoalescerLegacyPass (PassRegistry & )

    Defined at line 420 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • void jitLinkForORC (object::OwningBinary<object::ObjectFile> O, RuntimeDyld::MemoryManager & MemMgr, JITSymbolResolver & Resolver, bool ProcessAllSections, unique_function<Error (const object::ObjectFile &, LoadedObjectInfo &, int)> OnLoaded, unique_function<void (object::OwningBinary<object::ObjectFile>, int, Error)> OnEmitted)

    Asynchronous JIT link for ORC.

    Warning: This API is experimental and probably should not be used by anyone

    but ORC's RTDyldObjectLinkingLayer2. Internally it constructs a RuntimeDyld

    instance and uses continuation passing to perform the fix-up and finalize

    steps asynchronously.

    Defined at line of file

  • raw_ostream & operator<< (raw_ostream & OS, const MIBInfo & MIB)

    Defined at line 420 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • raw_ostream & operator<< (raw_ostream & OS, const Session::FileInfo & FI)

    Defined at line 423 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <typename OStream, typename T>
    std::enable_if_t<! std::is_reference_v<OStream> && std::is_base_of_v<raw_ostream, OStream>, OStream &&> operator<< (OStream && OS, const T & Value)

    Call the appropriate insertion operator, given an rvalue reference to a

    raw_ostream object and return a stream of the same type as the argument.

    Defined at line 424 of file llvm/include/llvm/Support/raw_ostream.h

  • template <typename OStream, typename T>
    std::enable_if_t<!std::is_reference_v<OStream> && std::is_base_of_v<raw_ostream, OStream>, OStream &&> operator<< (OStream && OS, const T & Value)

    Call the appropriate insertion operator, given an rvalue reference to a

    raw_ostream object and return a stream of the same type as the argument.

    Defined at line 424 of file llvm/include/llvm/Support/raw_ostream.h

  • template <typename OStream, typename T>
    int operator<< (OStream && OS, const T & Value)

    Call the appropriate insertion operator, given an rvalue reference to a

    raw_ostream object and return a stream of the same type as the argument.

    Defined at line 424 of file llvm/include/llvm/Support/raw_ostream.h

  • raw_ostream & operator<< (raw_ostream & OS, const LLT & Ty)

    Defined at line 425 of file llvm/include/llvm/CodeGenTypes/LowLevelType.h

  • template <typename LeafTy, typename ScalarTy>
    raw_ostream & operator<< (raw_ostream & OS, const details::FixedOrScalableQuantity<LeafTy, ScalarTy> & PS)

    Stream operator function for `FixedOrScalableQuantity`.

    Defined at line 426 of file llvm/include/llvm/Support/TypeSize.h

  • TransformationMode hasDistributeTransformation (const Loop * L)

    Defined at line 428 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void initializeStructurizeCFGLegacyPassPass (PassRegistry & )

    Defined at line 429 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp

  • bool operator== (const AttributeEncoding & LHS, const AttributeEncoding & RHS)

    Defined at line 429 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h

  • template <typename GraphType>
    void dumpDotGraphToFile (const GraphType & G, const Twine & FileName, const Twine & Title, bool ShortNames, const Twine & Name)

    Defined at line 431 of file llvm/include/llvm/Support/GraphWriter.h

  • IntegerType * getWiderInductionTy (const DataLayout & DL, Type * Ty0, Type * Ty1)

    Defined at line 431 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • void writeStringsAndOffsets (MCStreamer & Out, DWPStringPool & Strings, MCSection * StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version, SectionLengths & SectionLength, Dwarf64StrOffsetsPromotion StrOffsetsOptValue)

    Defined at line 431 of file llvm/lib/DWP/DWP.cpp

  • template <typename U, typename V, typename T = common_sint<U, V>>
    T divideFloorSigned (U Numerator, V Denominator)

    Returns the integer floor(Numerator / Denominator). Signed version.

    Overflow is explicitly forbidden with an assert.

    Defined at line 433 of file llvm/include/llvm/Support/MathExtras.h

  • Value * getUnderlyingObject (Value * V, unsigned int MaxLookup)

    Defined at line 437 of file llvm/include/llvm/Analysis/ValueTracking.h

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr & I, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)

    Defined at line 437 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • raw_ostream & operator<< (raw_ostream & OS, const Session::FileInfoMap & FIM)

    Defined at line 438 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • bool hasOutsideLoopUser (const Loop * TheLoop, Instruction * Inst, SmallPtrSetImpl<Value *> & AllowedExit)

    Check that the instruction has outside loop users and is not an

    identified reduction variable.

    Defined at line 440 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const MachineTraceMetrics::Trace & Tr)

    Defined at line 441 of file llvm/include/llvm/CodeGen/MachineTraceMetrics.h

  • void initializeRegAllocFastPass (PassRegistry & )

    Defined at line 445 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • TransformationMode hasLICMVersioningTransformation (const Loop * L)

    Defined at line 438 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const SCC & C)

    Print a short description useful for debugging or logging.

    We print the function names in the SCC wrapped in '()'s and skipping

    the middle functions if there are a large number.

    Note: this is defined inline to dodge issues with GCC's interpretation

    of enclosing namespaces for friend function declarations.

    Defined at line 440 of file llvm/include/llvm/Analysis/LazyCallGraph.h

  • template <typename LoopPassT>
    FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor (LoopPassT && Pass, bool UseMemorySSA)

    A function to deduce a loop pass type and wrap it in the templated

    adaptor.

    If

    is a loop pass, the returned adaptor will be in loop mode.

    If

    is a loop-nest pass,

    will first be wrapped into a

    and the returned adaptor will be in loop-nest mode.

    Defined at line 441 of file llvm/include/llvm/Transforms/Scalar/LoopPassManager.h

  • template <typename GraphType>
    void ViewGraph (const GraphType & G, const Twine & Name, bool ShortNames, const Twine & Title, Name Program)

    ViewGraph - Emit a dot graph, run 'dot', run gv on the postscript file,

    then cleanup. For use from the debugger.

    Defined at line 443 of file llvm/include/llvm/Support/GraphWriter.h

  • error_code make_error_code (instrprof_error E)

    Defined at line 445 of file llvm/include/llvm/ProfileData/InstrProf.h

  • pair getParsedIRPGOName (StringRef IRPGOName)

    Returns

    the filename and the function name parsed from the output of

    Defined at line 445 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool lazyLinkingRequested ()

    Defined at line 445 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void expectCanParseScalar (StringRef Input, StringRef Expected)

    Checks that the given string can be parsed into an expected scalar value.

    Defined at line 445 of file llvm/unittests/Support/YAMLParserTest.cpp

  • bool dieNeedsChildrenToBeMeaningful (uint32_t Tag)

    Defined at line 445 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • void initializePostMachineSchedulerLegacyPass (PassRegistry & )

    Defined at line 447 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const MachineTraceMetrics::Ensemble & En)

    Defined at line 447 of file llvm/include/llvm/CodeGen/MachineTraceMetrics.h

  • Expected totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment)

    This is ugly and needs cleaning up, but I don't immediately see

    how whilst remaining safe.

    Defined at line 447 of file llvm/lib/Support/APFloat.cpp

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr * I, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)

    Defined at line 448 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • unsigned int findMaximalSubpartOfIllFormedUTF8Sequence (const UTF8 * source, const UTF8 * sourceEnd)

    ---------------------------------------------------------------------

    Defined at line 448 of file llvm/lib/Support/ConvertUTF.cpp

  • template <typename U, typename V, typename T = common_sint<U, V>>
    T mod (U Numerator, V Denominator)

    Returns the remainder of the Euclidean division of LHS by RHS. Result is

    always non-negative.

    Defined at line 449 of file llvm/include/llvm/Support/MathExtras.h

  • SmallVector collectChildrenInLoop (DominatorTree * DT, DomTreeNode * N, const Loop * CurLoop)

    Does a BFS from a given node to all of its children inside a given loop.

    The returned vector of basic blocks includes the starting point.

    Defined at line 450 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <typename DataT>
    void emitAppleAccelTable (AsmPrinter * Asm, AccelTable<DataT> & Contents, StringRef Prefix, const MCSymbol * SecBegin)

    Emit an Apple Accelerator Table consisting of entries in the specified

    AccelTable. The DataT template parameter should be derived from

    AppleAccelTableData.

    Defined at line 452 of file llvm/include/llvm/CodeGen/AccelTable.h

  • StringRef getFuncNameWithoutPrefix (StringRef PGOFuncName, StringRef FileName)

    Given a PGO function name, remove the filename prefix and return

    the original (static) function name.

    Defined at line 452 of file llvm/lib/ProfileData/InstrProf.cpp

  • Error applyLibraryLinkModifiers (Session & S, LinkGraph & G)

    Defined at line 452 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AllocInfo & AE)

    Defined at line 456 of file llvm/include/llvm/IR/ModuleSummaryIndex.h

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const MIMetadata & MIMD, const MCInstrDesc & MCID)

    This version of the builder inserts the newly-built instruction before the

    given position in the given MachineBasicBlock, and does NOT take a

    destination register.

    Defined at line 457 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename U, typename V, typename T = common_uint<U, V>>
    T divideNearest (U Numerator, V Denominator)

    Returns (Numerator / Denominator) rounded by round-half-up. Guaranteed to

    never overflow.

    Defined at line 458 of file llvm/include/llvm/Support/MathExtras.h

  • bool storeToSameAddress (ScalarEvolution * SE, StoreInst * A, StoreInst * B)

    Returns true if A and B have same pointer operands or same SCEVs addresses

    Defined at line 458 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • template <class BlockT, class LoopT>
    void discoverAndMapSubloop (LoopT * L, ArrayRef<BlockT *> Backedges, LoopInfoBase<BlockT, LoopT> * LI, const DomTreeBase<BlockT> & DomTree)

    Discover a subloop with the specified backedges such that: All blocks within

    this loop are mapped to this loop or a subloop. And all subloops within this

    loop have their parent loop set to this loop or a subloop.

    Defined at line 459 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • template <class BlockT, class LoopT>
    void discoverAndMapSubloop (LoopT * L, ArrayRef<BlockT *> Backedges, LoopInfoBase<BlockT, LoopT> * LI, const int & DomTree)

    Discover a subloop with the specified backedges such that: All blocks within

    this loop are mapped to this loop or a subloop. And all subloops within this

    loop have their parent loop set to this loop or a subloop.

    Defined at line 459 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • bool operator== (const iterator_base & X, const iterator_base & Y)

    Defined at line 460 of file llvm/include/llvm/Support/OnDiskHashTable.h

  • void swap (CGSCCToFunctionPassAdaptor & LHS, CGSCCToFunctionPassAdaptor & RHS)

    Defined at line 461 of file llvm/include/llvm/Analysis/CGSCCPassManager.h

  • Instruction & GetInstByName (Function & F, StringRef Name)

    Defined at line 461 of file llvm/unittests/Analysis/ScalarEvolutionTest.cpp

  • int get_physical_cores ()

    Returns how many physical cores (as opposed to logical cores returned from

    thread::hardware_concurrency(), which includes hyperthreads).

    Returns -1 if unknown for the current host system.

    Defined at line 462 of file llvm/lib/Support/Unix/Threading.inc

  • uint64_t computeAllocationSizeForSections (std::vector<uint64_t> & SectionSizes, Align Alignment)

    A helper method for computeTotalAllocSize.

    Computes the memory size required to allocate sections with the given sizes,

    assuming that all sections are allocated with the given alignment

    Defined at line 462 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • bool operator!= (const iterator_base & X, const iterator_base & Y)

    Defined at line 463 of file llvm/include/llvm/Support/OnDiskHashTable.h

  • basic_string getPGOFuncNameVarName (StringRef FuncName, LinkageTypes Linkage)

    is the string used as profile lookup key for the function. A

    symbol is created to hold the name. Return the legalized symbol name.

    Defined at line 464 of file llvm/lib/ProfileData/InstrProf.cpp

  • Instruction * SplitBlockAndInsertIfThen (Value * Cond, Instruction * SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ThenBlock)

    Defined at line 465 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • template <typename InputIteratorT>
    hash_code hash_combine_range (InputIteratorT first, InputIteratorT last)

    Compute a hash_code for a sequence of values.

    This hashes a sequence of values. It produces the same hash_code as

    'hash_combine(a, b, c, ...)', but can run over arbitrary sized sequences

    and is significantly faster given pointers and types which can be hashed as

    a sequence of bytes.

    Defined at line 466 of file llvm/include/llvm/ADT/Hashing.h

  • std::optional<DefinitionAndSourceRegister> getDefSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo & MRI)

    Find the def instruction for

    and underlying value Register folding

    away any copies.

    Also walks through hints such as G_ASSERT_ZEXT.

    Defined at line 469 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Error applyHarnessPromotions (Session & S, LinkGraph & G)

    Defined at line 469 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor (LoopPassManager && LPM, bool UseMemorySSA)

    If

    is an instance of

    the returned adaptor will

    be in loop-nest mode if the pass manager contains only loop-nest passes.

    Defined at line 470 of file llvm/include/llvm/Transforms/Scalar/LoopPassManager.h

  • template <>
    FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor<llvm::PassManager<Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &>> (LoopPassManager && LPM, bool UseMemorySSA)

    If

    is an instance of

    the returned adaptor will

    be in loop-nest mode if the pass manager contains only loop-nest passes.

    Defined at line 470 of file llvm/include/llvm/Transforms/Scalar/LoopPassManager.h

  • template <typename RangeT>
    hash_code hash_combine_range (RangeT && R)

    A wrapper for hash_combine_range above.

    Defined at line 471 of file llvm/include/llvm/ADT/Hashing.h

  • bool isRequiredForExecution (SectionRef Section)

    Defined at line 471 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • void initializeSeparateConstOffsetFromGEPLegacyPassPass (PassRegistry & )

    Defined at line 472 of file llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp

  • bool operator== (const std::reverse_iterator<DWARFDie::iterator> & LHS, const std::reverse_iterator<DWARFDie::iterator> & RHS)

    Defined at line 472 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • bool isTlsAddressCode (uint8_t DW_OP_Code)

    Defined at line 474 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • void inferAttribute (Function * F, unsigned int AttrIndex, const ValueLatticeElement & Val)

    Defined at line 476 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • bool operator!= (const std::reverse_iterator<DWARFDie::iterator> & LHS, const std::reverse_iterator<DWARFDie::iterator> & RHS)

    Defined at line 477 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr & I, const MIMetadata & MIMD, const MCInstrDesc & MCID)

    Defined at line 477 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename U, typename V, typename T = common_uint<U, V>>
    T alignTo (U Value, V Align)

    Returns the next integer (mod 2**nbits) that is greater than or equal to

    and is a multiple of

    must be non-zero.

    Examples:

    Will overflow only if result is not representable in T.

    Code

                                                    
                                                           alignTo(5, 8) = 8
                                                           alignTo(17, 8) = 24
                                                           alignTo(~0LL, 8) = 0
                                                           alignTo(321, 255) = 510
                                                    
                                                

    Defined at line 478 of file llvm/include/llvm/Support/MathExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const MappingCost & Cost)

    Overload the stream operator for easy debug printing.

    Defined at line 479 of file llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h

  • void constructSeqOffsettoOrigRowMapping (CompileUnit & Unit, const DWARFDebugLine::LineTable & LT, int & SeqOffToOrigRow)

    Defined at line 479 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • Instruction * SplitBlockAndInsertIfElse (Value * Cond, Instruction * SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ElseBlock)

    Defined at line 484 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • uint64_t alignTo (uint64_t Value, uint64_t Align)

    Fallback when arguments aren't integral.

    Defined at line 485 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator== (const StringMapIterBase<ValueTy, IsConst> & LHS, const StringMapIterBase<ValueTy, IsConst> & RHS)

    Defined at line 486 of file llvm/include/llvm/ADT/StringMap.h

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr * I, const MIMetadata & MIMD, const MCInstrDesc & MCID)

    Defined at line 487 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • void setPGOFuncVisibility (Module & M, GlobalVariable * FuncNameVar)

    Defined at line 487 of file llvm/lib/ProfileData/InstrProf.cpp

  • const AllocaInst * findAllocaForValue (const Value * V, bool OffsetZero)

    Defined at line 489 of file llvm/include/llvm/Analysis/ValueTracking.h

  • bool isMaskedSlidePair (ArrayRef Mask, int NumElts, std::array<std::pair<int, int>, 2> & SrcInfo)

    Does this shuffle mask represent either one slide shuffle or a pair of

    two slide shuffles, combined with a select on some constant vector mask?

    A slide is a shuffle mask which shifts some set of elements up or down

    the vector, with all other elements being undefined. An identity shuffle

    will be matched a slide by 0. The output parameter provides the source

    (-1 means no source), and slide direction for each slide.

    Defined at line 489 of file llvm/lib/Analysis/VectorUtils.cpp

  • template <typename IteratorT>
    std::string join (IteratorT Begin, IteratorT End, StringRef Separator)

    Joins the strings in the range [Begin, End), adding Separator between

    the elements.

    Defined at line 491 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename IteratorT>
    basic_string join (IteratorT Begin, IteratorT End, StringRef Separator)

    Joins the strings in the range [Begin, End), adding Separator between

    the elements.

    Defined at line 491 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator!= (const StringMapIterBase<ValueTy, IsConst> & LHS, const StringMapIterBase<ValueTy, IsConst> & RHS)

    Defined at line 491 of file llvm/include/llvm/ADT/StringMap.h

  • template <typename U, typename V, typename T = common_uint<U, V>>
    T alignToPowerOf2 (U Value, V Align)

    Will overflow only if result is not representable in T.

    Defined at line 493 of file llvm/include/llvm/Support/MathExtras.h

  • bool isReadOnlyData (SectionRef Section)

    Defined at line 494 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • MachineInstrBuilder BuildMI (MachineBasicBlock * BB, const MIMetadata & MIMD, const MCInstrDesc & MCID)

    This version of the builder inserts the newly-built instruction at the end

    of the given MachineBasicBlock, and does NOT take a destination register.

    Defined at line 495 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • MachineInstr * getDefIgnoringCopies (Register Reg, const MachineRegisterInfo & MRI)

    Find the def instruction for

    folding away any trivial copies. May

    return nullptr if

    is not a generic virtual register.

    Also walks through hints such as G_ASSERT_ZEXT.

    Defined at line 495 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • GlobalVariable * createPGOFuncNameVar (Module & M, LinkageTypes Linkage, StringRef PGOFuncName)

    Create and return the global variable for function name used in PGO

    instrumentation.

    is the IRPGO function name (returned by

    for LLVM IR instrumentation and PGO function name

    (returned by

    for front-end instrumentation.

    Defined at line 497 of file llvm/lib/ProfileData/InstrProf.cpp

  • Expected skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator * dot)

    Defined at line 498 of file llvm/lib/Support/APFloat.cpp

  • template <typename Range>
    basic_string join (Range && R, StringRef Separator)

    Joins the strings in the range [R.begin(), R.end()), adding Separator

    between the elements.

    Defined at line 499 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename Range>
    std::string join (Range && R, StringRef Separator)

    Joins the strings in the range [R.begin(), R.end()), adding Separator

    between the elements.

    Defined at line 499 of file llvm/include/llvm/ADT/StringExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const Type & T)

    Printing of types.

    Defined at line 499 of file llvm/include/llvm/IR/Type.h

  • SDNodeFlags operator| (SDNodeFlags LHS, SDNodeFlags RHS)

    Defined at line 500 of file llvm/include/llvm/CodeGen/SelectionDAGNodes.h

  • uint64_t alignToPowerOf2 (uint64_t Value, uint64_t Align)

    Fallback when arguments aren't integral.

    Defined at line 501 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename PtrType>
    bool operator== (const SmallPtrSetImpl<PtrType> & LHS, const SmallPtrSetImpl<PtrType> & RHS)

    Equality comparison for SmallPtrSet.

    Iterates over elements of LHS confirming that each value from LHS is also in

    RHS, and that no additional values are in RHS.

    Defined at line 501 of file llvm/include/llvm/ADT/SmallPtrSet.h

  • Register getSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo & MRI)

    Find the source register for

    folding away any trivial copies. It

    will be an output register of the instruction that getDefIgnoringCopies

    returns. May return an invalid register if

    is not a generic virtual

    register.

    Also walks through hints such as G_ASSERT_ZEXT.

    Defined at line 502 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • MachineInstrBuilder BuildMI (MachineBasicBlock * BB, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)

    This version of the builder inserts the newly-built instruction at the

    end of the given MachineBasicBlock, and sets up the first operand as a

    destination virtual register.

    Defined at line 504 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • void initializeMIR2VecVocabLegacyAnalysisPass (PassRegistry & )

    Defined at line 505 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • SDNodeFlags operator& (SDNodeFlags LHS, SDNodeFlags RHS)

    Defined at line 505 of file llvm/include/llvm/CodeGen/SelectionDAGNodes.h

  • template <typename FunctionPassT>
    CGSCCToFunctionPassAdaptor createCGSCCToFunctionPassAdaptor (FunctionPassT && Pass, bool EagerlyInvalidate, bool NoRerun)

    A function to deduce a function pass type and wrap it in the

    templated adaptor.

    Defined at line 505 of file llvm/include/llvm/Analysis/CGSCCPassManager.h

  • template <typename Sep, typename... Args>
    std::string join_items (Sep Separator, Args &&... Items)

    Joins the strings in the parameter pack

    adding

    between the elements. All arguments must be implicitly convertible to

    std::string, or there should be an overload of std::string::operator+=()

    that accepts the argument explicitly.

    Defined at line 508 of file llvm/include/llvm/ADT/StringExtras.h

  • template <typename Sep, typename... Args>
    basic_string join_items (Sep Separator, Args &&... Items)

    Joins the strings in the parameter pack

    adding

    between the elements. All arguments must be implicitly convertible to

    std::string, or there should be an overload of std::string::operator+=()

    that accepts the argument explicitly.

    Defined at line 508 of file llvm/include/llvm/ADT/StringExtras.h

  • void extractParts (Register Reg, LLT Ty, int NumParts, SmallVectorImpl<Register> & VRegs, MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI)

    Helper function to split a wide generic register into bitwise blocks with

    the given Type (which implies the number of blocks needed). The generic

    registers created are appended to Ops, starting at bit 0 of Reg.

    Defined at line 509 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Type * unwrap (LLVMTypeRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 512 of file llvm/include/llvm/IR/Type.h

  • template <>
    T * unwrap (LLVMTypeRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 512 of file llvm/include/llvm/IR/Type.h

  • LLVMTypeRef wrap (const Type * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 512 of file llvm/include/llvm/IR/Type.h

  • bool isZeroInit (SectionRef Section)

    Defined at line 512 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • Type ** unwrap (LLVMTypeRef * Tys)

    Specialized opaque type conversions.

    Defined at line 516 of file llvm/include/llvm/IR/Type.h

  • template <class BlockT, class LoopT>
    raw_ostream & operator<< (raw_ostream & OS, const LoopBase<BlockT, LoopT> & Loop)

    Defined at line 516 of file llvm/include/llvm/Support/GenericLoopInfo.h

  • void SplitBlockAndInsertIfThenElse (Value * Cond, Instruction * SplitBefore, Instruction ** ThenTerm, Instruction ** ElseTerm, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)

    Defined at line 516 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • template <typename PtrType>
    bool operator!= (const SmallPtrSetImpl<PtrType> & LHS, const SmallPtrSetImpl<PtrType> & RHS)

    Inequality comparison for SmallPtrSet.

    Equivalent to !(LHS == RHS).

    Defined at line 517 of file llvm/include/llvm/ADT/SmallPtrSet.h

  • LLVMTypeRef * wrap (Type ** Tys)

    Defined at line 520 of file llvm/include/llvm/IR/Type.h

  • template <typename U, typename V, typename W, typename T = common_uint<common_uint<U, V>, W>>
    T alignTo (U Value, V Align, W Skew)

    If non-zero

    is specified, the return value will be a minimal integer

    that is greater than or equal to

    and equal to

    * N +

    for

    some integer N. If

    is larger than

    its value is adjusted to '

    mod

    must be non-zero.

    Examples:

    May overflow.

    Code

                                                    
                                                           alignTo(5, 8, 7) = 7
                                                           alignTo(17, 8, 1) = 17
                                                           alignTo(~0LL, 8, 3) = 3
                                                           alignTo(321, 255, 42) = 552
                                                    
                                                

    Defined at line 524 of file llvm/include/llvm/Support/MathExtras.h

  • DynamicAPInt & operator+= (DynamicAPInt & A, int64_t B)

    ---------------------------------------------------------------------------

    Convenience operator overloads for int64_t.

    ---------------------------------------------------------------------------

    Defined at line 531 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • DynamicAPInt & operator-= (DynamicAPInt & A, int64_t B)

    Defined at line 535 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • bool FlattenCFG (BasicBlock * BB, AAResults * AA)

    FlattenCFG - This function is used to flatten a CFG. For

    example, it uses parallel-and and parallel-or mode to collapse

    if-conditions and merge if-regions with identical statements.

    Defined at line 533 of file llvm/lib/Transforms/Utils/FlattenCFG.cpp

  • unsigned int getNumBytesForUTF8 (UTF8 firstByte)

    Exported function to return the total number of bytes in a codepoint

    represented in UTF-8, given the value of the first byte.

    Defined at line 545 of file llvm/lib/Support/ConvertUTF.cpp

  • void narrowShuffleMaskElts (int Scale, ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)

    Replace each shuffle mask index with the scaled sequential indices for an

    equivalent mask of narrowed elements. Mask elements that are less than 0

    (sentinel values) are repeated in the output mask.

    Example with Scale = 4:

    <

    4 x i32>

    <

    3, 2, 0, -1> -->

    <

    16 x i8>

    <

    12, 13, 14, 15, 8, 9, 10, 11, 0, 1, 2, 3, -1, -1, -1, -1>

    This is the reverse process of widening shuffle mask elements, but it always

    succeeds because the indexes can always be multiplied (scaled up) to map to

    narrower vector elements.

    Defined at line 519 of file llvm/lib/Analysis/VectorUtils.cpp

  • GlobalVariable * createPGOFuncNameVar (Function & F, StringRef PGOFuncName)

    Create and return the global variable for function name used in PGO

    instrumentation.

    is the IRPGO function name (returned by

    for LLVM IR instrumentation and PGO function name

    (returned by

    for front-end instrumentation.

    Defined at line 524 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool widenShuffleMaskElts (int Scale, ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)

    Try to transform a shuffle mask by replacing elements with the scaled index

    for an equivalent mask of widened elements. If all mask elements that would

    map to a wider element of the new mask are the same negative number

    (sentinel value), that element of the new mask is the same value. If any

    element in a given slice is negative and some other element in that slice is

    not the same value, return false (partial matches with sentinel values are

    not allowed).

    Example with Scale = 4:

    <

    16 x i8>

    <

    12, 13, 14, 15, 8, 9, 10, 11, 0, 1, 2, 3, -1, -1, -1, -1> -->

    <

    4 x i32>

    <

    3, 2, 0, -1>

    This is the reverse process of narrowing shuffle mask elements if it

    succeeds. This transform is not always possible because indexes may not

    divide evenly (scale down) to map to wider vector elements.

    Defined at line 540 of file llvm/lib/Analysis/VectorUtils.cpp

  • bool extractParts (Register Reg, LLT RegTy, LLT MainTy, LLT & LeftoverTy, SmallVectorImpl<Register> & VRegs, SmallVectorImpl<Register> & LeftoverVRegs, MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI)

    Version which handles irregular splits.

    Defined at line 518 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void dumpSectionContents (raw_ostream & OS, Session & S, LinkGraph & G)

    Defined at line 521 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • DynamicAPInt & operator*= (DynamicAPInt & A, int64_t B)

    Defined at line 539 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • DynamicAPInt & operator/= (DynamicAPInt & A, int64_t B)

    Defined at line 543 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • void initializeMachineCopyPropagationLegacyPass (PassRegistry & )

    Defined at line 527 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp

  • void initializeScavengerTestPass (PassRegistry & )

    Defined at line 526 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • void initializeStackColoringLegacyPass (PassRegistry & )

    Defined at line 526 of file llvm/lib/CodeGen/StackColoring.cpp

  • Twine operator+ (const Twine & LHS, const Twine & RHS)

    Defined at line 526 of file llvm/include/llvm/ADT/Twine.h

  • bool isTLS (SectionRef Section)

    Defined at line 526 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • Twine operator+ (const char * LHS, StringRef RHS)

    Additional overload to guarantee simplified codegen; this is equivalent to

    concat().

    Defined at line 533 of file llvm/include/llvm/ADT/Twine.h

  • void writeIndexTable (MCStreamer & Out, ArrayRef ContributionOffsets, const MapVector<uint64_t, UnitIndexEntry> & IndexEntries, const AccessField & Field)

    Defined at line 533 of file llvm/lib/DWP/DWP.cpp

  • template <auto Align, typename V, typename T = common_uint<decltype(Align), V>>
    T alignTo (V Value)

    Returns the next integer (mod 2**nbits) that is greater than or equal to

    and is a multiple of

    must be non-zero.

    Will overflow only if result is not representable in T.

    Defined at line 535 of file llvm/include/llvm/Support/MathExtras.h

  • Error interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo * D)

    Defined at line 539 of file llvm/lib/Support/APFloat.cpp

  • template <typename T>
    bool operator== (ArrayRef<T> LHS, ArrayRef<T> RHS)

    @

    }

    @

    {

    Defined at line 540 of file llvm/include/llvm/ADT/ArrayRef.h

  • Twine operator+ (StringRef LHS, const char * RHS)

    Additional overload to guarantee simplified codegen; this is equivalent to

    concat().

    Defined at line 540 of file llvm/include/llvm/ADT/Twine.h

  • raw_ostream & operator<< (raw_ostream & OS, const Twine & RHS)

    Defined at line 544 of file llvm/include/llvm/ADT/Twine.h

  • template <typename T>
    bool operator== (const SmallVectorImpl<T> & LHS, ArrayRef<T> RHS)

    Defined at line 545 of file llvm/include/llvm/ADT/ArrayRef.h

  • template <typename U, typename V, typename W = uint8_t, typename T = common_uint<common_uint<U, V>, W>>
    T alignDown (U Value, V Align, W Skew)

    Returns the largest unsigned integer less than or equal to

    and is

    mod

    must be non-zero. Guaranteed to never

    overflow.

    Defined at line 546 of file llvm/include/llvm/Support/MathExtras.h

  • bool isSafeToSpeculativelyExecute (const Instruction * I, int CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)

    Defined at line 546 of file llvm/include/llvm/Analysis/ValueTracking.h

  • bool isSafeToSpeculativelyExecute (const Instruction * I, ilist_iterator_w_bits CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)

    Defined at line 546 of file llvm/include/llvm/Analysis/ValueTracking.h

  • template <typename... To, typename From>
    bool isa (const From & Val)

    isa

    <X

    > - Return true if the parameter to the template is an instance of one

    of the template type arguments. Used like this:

    if (isa

    <Type

    >(myVal)) { ... }

    if (isa

    <Type0

    , Type1, Type2>(myVal)) { ... }

    Defined at line 547 of file llvm/include/llvm/Support/Casting.h

  • DynamicAPInt & operator%= (DynamicAPInt & A, int64_t B)

    Defined at line 547 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • KnownBits operator& (KnownBits LHS, const KnownBits & RHS)

    Defined at line 548 of file llvm/include/llvm/Support/KnownBits.h

  • template <typename RangeT, typename PredicateT>
    iterator_range<filter_iterator<detail::IterOfRange<RangeT>, PredicateT>> make_filter_range (RangeT && Range, PredicateT Pred)

    Convenience function that takes a range of elements and a predicate,

    and return a new filter_iterator range.

    FIXME: Currently if RangeT

    &

    &

    is a rvalue reference to a temporary, the

    lifetime of that temporary is not kept by the returned range object, and the

    temporary is going to be dropped on the floor after the make_iterator_range

    full expression that contains this function call.

    Defined at line 549 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename RangeT, typename PredicateT>
    int make_filter_range (RangeT && Range, PredicateT Pred)

    Convenience function that takes a range of elements and a predicate,

    and return a new filter_iterator range.

    FIXME: Currently if RangeT

    &

    &

    is a rvalue reference to a temporary, the

    lifetime of that temporary is not kept by the returned range object, and the

    temporary is going to be dropped on the floor after the make_iterator_range

    full expression that contains this function call.

    Defined at line 549 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T>
    bool operator!= (ArrayRef<T> LHS, ArrayRef<T> RHS)

    Defined at line 551 of file llvm/include/llvm/ADT/ArrayRef.h

  • DynamicAPInt operator+ (const DynamicAPInt & A, int64_t B)

    Defined at line 551 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • KnownBits operator& (const KnownBits & LHS, KnownBits && RHS)

    Defined at line 553 of file llvm/include/llvm/Support/KnownBits.h

  • template <unsigned B>
    int32_t SignExtend32 (uint32_t X)

    Sign-extend the number in the bottom B bits of X to a 32-bit integer.

    Requires B

    <

    = 32.

    Defined at line 554 of file llvm/include/llvm/Support/MathExtras.h

  • DynamicAPInt operator- (const DynamicAPInt & A, int64_t B)

    Defined at line 555 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • Boolean isLegalUTF8String (const UTF8 ** source, const UTF8 * sourceEnd)

    Exported function to return whether a UTF-8 string is legal or not.

    This is not used here; it's just exported.

    Defined at line 555 of file llvm/lib/Support/ConvertUTF.cpp

  • template <typename T>
    bool operator!= (const SmallVectorImpl<T> & LHS, ArrayRef<T> RHS)

    Defined at line 556 of file llvm/include/llvm/ADT/ArrayRef.h

  • KnownBits operator| (KnownBits LHS, const KnownBits & RHS)

    Defined at line 558 of file llvm/include/llvm/Support/KnownBits.h

  • unsigned int getDefRegState (bool B)

    Defined at line 559 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • DynamicAPInt operator* (const DynamicAPInt & A, int64_t B)

    Defined at line 559 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <typename To, typename From>
    decltype(auto) cast (const From & Val)

    cast

    <X

    > - Return the argument parameter cast to the specified type. This

    casting operator asserts that the type is correct, so it does not return

    null on failure. It does not allow a null argument (use cast_if_present for

    that). It is typically used like this:

    cast

    <Instruction

    >(myVal)->getParent()

    Defined at line 559 of file llvm/include/llvm/Support/Casting.h

  • bool isSafeToSpeculativelyExecuteWithVariableReplaced (const Instruction * I, bool IgnoreUBImplyingAttrs)

    Don't use information from its non-constant operands. This helper is used

    when its operands are going to be replaced.

    Defined at line 560 of file llvm/include/llvm/Analysis/ValueTracking.h

  • void SplitBlockAndInsertIfThenElse (Value * Cond, Instruction * SplitBefore, BasicBlock ** ThenBlock, BasicBlock ** ElseBlock, bool UnreachableThen, bool UnreachableElse, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)

    Defined at line 560 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h

  • unsigned int getImplRegState (bool B)

    Defined at line 562 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename T>
    bool operator< (ArrayRef<T> LHS, ArrayRef<T> RHS)

    Defined at line 562 of file llvm/include/llvm/ADT/ArrayRef.h

  • DynamicAPInt operator/ (const DynamicAPInt & A, int64_t B)

    Defined at line 563 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • KnownBits operator| (const KnownBits & LHS, KnownBits && RHS)

    Defined at line 563 of file llvm/include/llvm/Support/KnownBits.h

  • int32_t SignExtend32 (uint32_t X, unsigned int B)

    Sign-extend the number in the bottom B bits of X to a 32-bit integer.

    Requires B

    <

    = 32.

    Defined at line 563 of file llvm/include/llvm/Support/MathExtras.h

  • unsigned int getKillRegState (bool B)

    Defined at line 565 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename To, typename From>
    decltype(auto) cast (From & Val)

    Defined at line 565 of file llvm/include/llvm/Support/Casting.h

  • DynamicAPInt operator% (const DynamicAPInt & A, int64_t B)

    Defined at line 567 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • raw_ostream & operator<< (raw_ostream & OS, const EVT & V)

    Defined at line 567 of file llvm/include/llvm/CodeGen/ValueTypes.h

  • raw_ostream & operator<< (raw_ostream & OS, const CacheCost & CC)

    ===----------------------------------------------------------------------===//

    CacheCost implementation

    Defined at line 567 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp

  • template <typename T>
    bool operator> (ArrayRef<T> LHS, ArrayRef<T> RHS)

    Defined at line 568 of file llvm/include/llvm/ADT/ArrayRef.h

  • unsigned int getDeadRegState (bool B)

    Defined at line 568 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • KnownBits operator^ (KnownBits LHS, const KnownBits & RHS)

    Defined at line 568 of file llvm/include/llvm/Support/KnownBits.h

  • uint32_t getValueProfRecordSize (uint32_t NumValueSites, uint32_t NumValueData)

    Return the total size of the value profile record including the

    header and the value data.

    Defined at line 570 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • raw_ostream & operator<< (raw_ostream & OS, const RefSCC & RC)

    Print a short description useful for debugging or logging.

    We print the SCCs wrapped in '[]'s and skipping the middle SCCs if

    there are a large number.

    Note: this is defined inline to dodge issues with GCC's interpretation

    of enclosing namespaces for friend function declarations.

    Defined at line 570 of file llvm/include/llvm/Analysis/LazyCallGraph.h

  • unsigned int getUndefRegState (bool B)

    Defined at line 571 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • DynamicAPInt operator+ (int64_t A, const DynamicAPInt & B)

    Defined at line 571 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <typename To, typename From>
    decltype(auto) cast (From * Val)

    Defined at line 571 of file llvm/include/llvm/Support/Casting.h

  • template <unsigned B>
    int64_t SignExtend64 (uint64_t x)

    Sign-extend the number in the bottom B bits of X to a 64-bit integer.

    Requires B

    <

    = 64.

    Defined at line 572 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    bool operator<= (ArrayRef<T> LHS, ArrayRef<T> RHS)

    Defined at line 573 of file llvm/include/llvm/ADT/ArrayRef.h

  • KnownBits operator^ (const KnownBits & LHS, KnownBits && RHS)

    Defined at line 573 of file llvm/include/llvm/Support/KnownBits.h

  • unsigned int getInternalReadRegState (bool B)

    Defined at line 574 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • bool operator== (const find_iterator & LHS, const find_iterator & RHS)

    Comparison operators.

    Defined at line 574 of file llvm/include/llvm/ADT/IntervalTree.h

  • auto filterDbgVars (int R)

    Filter the DbgRecord range to DbgVariableRecord types only and downcast.

    Defined at line 574 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • iterator_range filterDbgVars (iterator_range R)

    Filter the DbgRecord range to DbgVariableRecord types only and downcast.

    Defined at line 574 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • DynamicAPInt operator- (int64_t A, const DynamicAPInt & B)

    Defined at line 575 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • unsigned int getDebugRegState (bool B)

    Defined at line 577 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • template <typename To, typename From>
    decltype(auto) cast (int && Val)

    Defined at line 577 of file llvm/include/llvm/Support/Casting.h

  • template <typename To, typename From>
    decltype(auto) cast (std::unique_ptr<From> && Val)

    Defined at line 577 of file llvm/include/llvm/Support/Casting.h

  • template <typename T>
    bool operator>= (ArrayRef<T> LHS, ArrayRef<T> RHS)

    Defined at line 578 of file llvm/include/llvm/ADT/ArrayRef.h

  • raw_ostream & operator<< (raw_ostream & OS, const KnownBits & Known)

    Defined at line 578 of file llvm/include/llvm/Support/KnownBits.h

  • template <typename CGSCCPassT>
    DevirtSCCRepeatedPass createDevirtSCCRepeatedPass (CGSCCPassT && Pass, int MaxIterations)

    A function to deduce a function pass type and wrap it in the

    templated adaptor.

    Defined at line 578 of file llvm/include/llvm/Analysis/CGSCCPassManager.h

  • bool operator!= (const find_iterator & LHS, const find_iterator & RHS)

    Defined at line 579 of file llvm/include/llvm/ADT/IntervalTree.h

  • DynamicAPInt operator* (int64_t A, const DynamicAPInt & B)

    Defined at line 579 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • unsigned int getRenamableRegState (bool B)

    Defined at line 580 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • int64_t SignExtend64 (uint64_t X, unsigned int B)

    Sign-extend the number in the bottom B bits of X to a 64-bit integer.

    Requires B

    <

    = 64.

    Defined at line 581 of file llvm/include/llvm/Support/MathExtras.h

  • DynamicAPInt operator/ (int64_t A, const DynamicAPInt & B)

    Defined at line 583 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <typename T>
    hash_code hash_value (ArrayRef<T> S)

    @

    }

    Defined at line 584 of file llvm/include/llvm/ADT/ArrayRef.h

  • unsigned int getRegState (const MachineOperand & RegOp)

    Get all register state flags from machine operand

    Defined at line 585 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h

  • DynamicAPInt operator% (int64_t A, const DynamicAPInt & B)

    Defined at line 587 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • uint32_t getValueProfRecordNumValueData (ValueProfRecord * This)

    Return the total number of value data for

    record.

    Defined at line 588 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • void initializeMIR2VecVocabPrinterLegacyPassPass (PassRegistry & )

    Defined at line 592 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • bool widenShuffleMaskElts (ArrayRef M, SmallVectorImpl<int> & NewMask)

    A variant of the previous method which is specialized for Scale=2, and

    treats -1 as undef and allows widening when a wider element is partially

    undef in the narrow form of the mask. This transformation discards

    information about which bytes in the original shuffle were undef.

    Defined at line 591 of file llvm/lib/Analysis/VectorUtils.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const MVT & VT)

    Defined at line 592 of file llvm/include/llvm/CodeGenTypes/MachineValueType.h

  • template <typename T, typename U = std::make_unsigned_t<T>>
    U AbsoluteValue (T X)

    Return the absolute value of a signed integer, converted to the

    corresponding unsigned integer type. Avoids undefined behavior in std::abs

    when you pass it INT_MIN or similar.

    Defined at line 592 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename ...Ts>
    hash_code hash_combine (const Ts &... args)

    Combine values into a single hash_code.

    This routine accepts a varying number of arguments of any type. It will

    attempt to combine them into a single hash_code. For user-defined types it

    attempts to call a

    The result is suitable for returning from a user's hash_value

    *implementation* for their user-defined type. Consumers of a type should

    *not* call this routine, they should instead call 'hash_value'.

    Defined at line 592 of file llvm/include/llvm/ADT/Hashing.h

  • bool operator== (const DynamicAPInt & A, int64_t B)

    We provide special implementations of the comparison operators rather than

    calling through as above, as this would result in a 1.2x slowdown.

    Defined at line 594 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • bool operator!= (const DynamicAPInt & A, int64_t B)

    Defined at line 599 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <typename U, typename V, typename T = common_uint<U, V>>
    T AbsoluteDifference (U X, V Y)

    Subtract two unsigned integers, X and Y, of type T and return the absolute

    value of the result.

    Defined at line 600 of file llvm/include/llvm/Support/MathExtras.h

  • bool operator> (const DynamicAPInt & A, int64_t B)

    Defined at line 604 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <typename T>
    std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd (T X, T Y, bool * ResultOverflowed)

    Add two unsigned integers, X and Y, of type T. Clamp the result to the

    maximum representable value of T on overflow. ResultOverflowed indicates if

    the result is larger than the maximum representable value of type T.

    Defined at line 608 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    int SaturatingAdd (T X, T Y, bool * ResultOverflowed)

    Add two unsigned integers, X and Y, of type T. Clamp the result to the

    maximum representable value of T on overflow. ResultOverflowed indicates if

    the result is larger than the maximum representable value of type T.

    Defined at line 608 of file llvm/include/llvm/Support/MathExtras.h

  • Expected trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue)

    Return the trailing fraction of a hexadecimal number.

    DIGITVALUE is the first hex digit of the fraction, P points to

    the next digit.

    Defined at line 608 of file llvm/lib/Support/APFloat.cpp

  • bool operator< (const DynamicAPInt & A, int64_t B)

    Defined at line 609 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • bool operator== (const early_inc_iterator_impl<WrappedIteratorT> & LHS, const early_inc_iterator_impl<WrappedIteratorT> & RHS)

    Defined at line 609 of file llvm/include/llvm/ADT/STLExtras.h

  • iterator_range split (StringRef Str, StringRef Separator)

    Split the specified string over a separator and return a range-compatible

    iterable over its partitions. Used to permit conveniently iterating

    over separated strings like so:

    Defined at line 614 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator<= (const DynamicAPInt & A, int64_t B)

    Defined at line 614 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • iterator_range split (StringRef Str, char Separator)

    Defined at line 619 of file llvm/include/llvm/ADT/StringExtras.h

  • bool operator>= (const DynamicAPInt & A, int64_t B)

    Defined at line 619 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • raw_ostream & operator<< (raw_ostream & OS, const ConstantRange & CR)

    Defined at line 620 of file llvm/include/llvm/IR/ConstantRange.h

  • uint32_t getValueProfDataSize (ValueProfRecordClosure * Closure)

    Return the total size in bytes of the on-disk value profile data

    given the data stored in Record.

    Defined at line 622 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • bool operator== (int64_t A, const DynamicAPInt & B)

    Defined at line 624 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <class T, class... Ts>
    std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd (T X, T Y, T Z, Ts... Args)

    Add multiple unsigned integers of type T. Clamp the result to the

    maximum representable value of T on overflow.

    Defined at line 624 of file llvm/include/llvm/Support/MathExtras.h

  • template <class T, class... Ts>
    int SaturatingAdd (T X, T Y, T Z, Ts... Args)

    Add multiple unsigned integers of type T. Clamp the result to the

    maximum representable value of T on overflow.

    Defined at line 624 of file llvm/include/llvm/Support/MathExtras.h

  • FunctionPass * createStraightLineStrengthReducePass ()

    ===----------------------------------------------------------------------===//

    StraightLineStrengthReduce - This pass strength-reduces some certain

    instruction patterns in straight-line code.

    Defined at line 626 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • bool operator!= (int64_t A, const DynamicAPInt & B)

    Defined at line 629 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • template <typename RangeT>
    iterator_range<early_inc_iterator_impl<detail::IterOfRange<RangeT>>> make_early_inc_range (RangeT && Range)

    Make a range that does early increment to allow mutation of the underlying

    range without disrupting iteration.

    The underlying iterator will be incremented immediately after it is

    dereferenced, allowing deletion of the current node or insertion of nodes to

    not disrupt iteration provided they do not invalidate the *next* iterator --

    the current iterator can be invalidated.

    This requires a very exact pattern of use that is only really suitable to

    range based for loops and other range algorithms that explicitly guarantee

    to dereference exactly once each element, and to increment exactly once each

    element.

    Defined at line 631 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename RangeT>
    int make_early_inc_range (RangeT && Range)

    Make a range that does early increment to allow mutation of the underlying

    range without disrupting iteration.

    The underlying iterator will be incremented immediately after it is

    dereferenced, allowing deletion of the current node or insertion of nodes to

    not disrupt iteration provided they do not invalidate the *next* iterator --

    the current iterator can be invalidated.

    This requires a very exact pattern of use that is only really suitable to

    range based for loops and other range algorithms that explicitly guarantee

    to dereference exactly once each element, and to increment exactly once each

    element.

    Defined at line 631 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T>
    std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingMultiply (T X, T Y, bool * ResultOverflowed)

    Multiply two unsigned integers, X and Y, of type T. Clamp the result to the

    maximum representable value of T on overflow. ResultOverflowed indicates if

    the result is larger than the maximum representable value of type T.

    Defined at line 637 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    int SaturatingMultiply (T X, T Y, bool * ResultOverflowed)

    Multiply two unsigned integers, X and Y, of type T. Clamp the result to the

    maximum representable value of T on overflow. ResultOverflowed indicates if

    the result is larger than the maximum representable value of type T.

    Defined at line 637 of file llvm/include/llvm/Support/MathExtras.h

  • lostFraction lostFractionThroughTruncation (const APFloatBase::integerPart * parts, unsigned int partCount, unsigned int bits)

    Return the fraction lost were a bignum truncated losing the least

    significant BITS bits.

    Defined at line 639 of file llvm/lib/Support/APFloat.cpp

  • ConversionResult ConvertUTF8toUTF32Impl (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags, Boolean InputIsPartial)

    ---------------------------------------------------------------------

    Defined at line 640 of file llvm/lib/Support/ConvertUTF.cpp

  • void serializeValueProfRecordFrom (ValueProfRecord * This, ValueProfRecordClosure * Closure, uint32_t ValueKind, uint32_t NumValueSites)

    Extract value profile data of a function for the profile kind

    from the

    and serialize the data into

    record instance.

    Defined at line 642 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • template <typename To, typename From>
    decltype(auto) dyn_cast (const From & Val)

    dyn_cast

    <X

    > - Return the argument parameter cast to the specified type. This

    casting operator returns null if the argument is of the wrong type, so it

    can be used to test for a type as well as cast if successful. The value

    passed in must be present, if not, use dyn_cast_if_present. This should be

    used in the context of an if statement like this:

    if (const Instruction *I = dyn_cast

    <Instruction

    >(myVal)) { ... }

    Defined at line 643 of file llvm/include/llvm/Support/Casting.h

  • Value * lowerObjectSizeCall (IntrinsicInst * ObjectSize, const DataLayout & DL, const TargetLibraryInfo * TLI, bool MustSucceed)

    Try to turn a call to

    @

    llvm.objectsize into an integer value of the given

    Type. Returns null on failure. If MustSucceed is true, this function will

    not return null, and may return conservative values governed by the second

    argument of the call to objectsize.

    Defined at line 645 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • Value * lowerObjectSizeCall (IntrinsicInst * ObjectSize, const DataLayout & DL, const TargetLibraryInfo * TLI, AAResults * AA, bool MustSucceed, SmallVectorImpl<Instruction *> * InsertedInstructions)

    Defined at line 653 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • bool operator> (int64_t A, const DynamicAPInt & B)

    Defined at line 634 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • bool operator< (int64_t A, const DynamicAPInt & B)

    Defined at line 639 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • bool operator<= (int64_t A, const DynamicAPInt & B)

    Defined at line 644 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • void initializeMachineOutlinerPass (PassRegistry & )

    Defined at line 602 of file llvm/lib/CodeGen/MachineOutliner.cpp

  • bool scaleShuffleMaskElts (unsigned int NumDstElts, ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)

    Attempt to narrow/widen the

    shuffle mask to the

    target

    width. Internally this will call narrowShuffleMaskElts/widenShuffleMaskElts.

    This will assert unless NumDstElts is a multiple of Mask.size (or

    vice-versa). Returns false on failure, and ScaledMask will be in an

    undefined state.

    Defined at line 626 of file llvm/lib/Analysis/VectorUtils.cpp

  • void extractVectorParts (Register Reg, unsigned int NumElts, SmallVectorImpl<Register> & VRegs, MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI)

    Version which handles irregular sub-vector splits.

    Defined at line 612 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void getShuffleMaskWithWidestElts (ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)

    Repetitively apply `widenShuffleMaskElts()` for as long as it succeeds,

    to get the shuffle mask with widest possible elements.

    Defined at line 651 of file llvm/lib/Analysis/VectorUtils.cpp

  • void initializeStraightLineStrengthReduceLegacyPassPass (PassRegistry & )

    Defined at line 623 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • template <typename To, typename From>
    decltype(auto) dyn_cast (From & Val)

    Defined at line 649 of file llvm/include/llvm/Support/Casting.h

  • bool operator>= (int64_t A, const DynamicAPInt & B)

    Defined at line 649 of file llvm/include/llvm/ADT/DynamicAPInt.h

  • void initializeMIR2VecPrinterLegacyPassPass (PassRegistry & )

    Defined at line 629 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • template <class RemarkT>
    decltype(auto) operator<< (RemarkT && R, int S)

    Allow the insertion operator to return the actual remark type rather than a

    common base class. This allows returning the result of the insertion

    directly by value, e.g. return OptimizationRemarkAnalysis(...)

    <

    <

    "blah".

    Defined at line 652 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • template <class RemarkT>
    decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, StringRef> S)

    Allow the insertion operator to return the actual remark type rather than a

    common base class. This allows returning the result of the insertion

    directly by value, e.g. return OptimizationRemarkAnalysis(...)

    <

    <

    "blah".

    Defined at line 652 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • MachineInstr * getOpcodeDef (unsigned int Opcode, Register Reg, const MachineRegisterInfo & MRI)

    See if Reg is defined by an single def instruction that is

    Opcode. Also try to do trivial folding if it's a COPY with

    same types. Returns null otherwise.

    Defined at line 654 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void initializeX86DAGToDAGISelLegacyPass (PassRegistry & )

    Defined at line 620 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • template <typename To, typename From>
    decltype(auto) dyn_cast (From * Val)

    Defined at line 655 of file llvm/include/llvm/Support/Casting.h

  • void FillFunction (Function * F, Random & R)

    Defined at line 660 of file llvm/tools/llvm-stress/llvm-stress.cpp

  • template <typename To, typename From>
    decltype(auto) dyn_cast (std::unique_ptr<From> & Val)

    Defined at line 661 of file llvm/include/llvm/Support/Casting.h

  • template <typename To, typename From>
    decltype(auto) dyn_cast (int & Val)

    Defined at line 661 of file llvm/include/llvm/Support/Casting.h

  • lostFraction shiftRight (APFloatBase::integerPart * dst, unsigned int parts, unsigned int bits)

    Shift DST right BITS bits noting lost fraction.

    Defined at line 661 of file llvm/lib/Support/APFloat.cpp

  • template <class RemarkT>
    decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, DiagnosticInfoOptimizationBase::Argument> A)

    Defined at line 663 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • ExecutionEngine * unwrap (LLVMExecutionEngineRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 667 of file llvm/include/llvm/ExecutionEngine/ExecutionEngine.h

  • LLVMExecutionEngineRef wrap (const ExecutionEngine * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 667 of file llvm/include/llvm/ExecutionEngine/ExecutionEngine.h

  • ValueProfData * serializeValueProfDataFrom (ValueProfRecordClosure * Closure, ValueProfData * DstData)

    Extract value profile data of a function from the

    and serialize the data into

    if it is not NULL or heap

    memory allocated by the

    allocator method. If

    is not null, the caller is expected to set the TotalSize

    in DstData.

    Defined at line 667 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • template <typename... X, class Y>
    bool isa_and_present (const Y & Val)

    isa_and_present

    <X

    > - Functionally identical to isa, except that a null value

    is accepted.

    Defined at line 669 of file llvm/include/llvm/Support/Casting.h

  • void parseCommandLineOptions (int & Options)

    A convenience function that calls cl::ParseCommandLineOptions on the given

    set of options.

    Defined at line 670 of file llvm/lib/LTO/LTOCodeGenerator.cpp

  • BasicBlock * SplitEdge (BasicBlock * From, BasicBlock * To, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)

    Split the edge connecting the specified blocks, and return the newly created

    basic block between

    and

    Defined at line 660 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • APFloat getAPFloatFromSize (double Val, unsigned int Size)

    Returns an APFloat from Val converted to the appropriate size.

    Defined at line 660 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void processShuffleMasks (ArrayRef Mask, unsigned int NumOfSrcRegs, unsigned int NumOfDestRegs, unsigned int NumOfUsedRegs, function_ref<void ()> NoInputAction, function_ref<void (ArrayRef<int>, unsigned int, unsigned int)> SingleInputAction, function_ref<void (ArrayRef<int>, unsigned int, unsigned int, bool)> ManyInputsAction)

    Splits and processes shuffle mask depending on the number of input and

    output registers. The function does 2 main things: 1) splits the

    source/destination vectors into real registers; 2) do the mask analysis to

    identify which real registers are permuted. Then the function processes

    resulting registers mask using provided action items. If no input register

    is defined,

    action is used. If only 1 input register is

    used,

    is used, otherwise

    is used to

    process > 2 input registers and masks.

    Parameters

    Mask Original shuffle mask.
    NumOfSrcRegs Number of source registers.
    NumOfDestRegs Number of destination registers.
    NumOfUsedRegs Number of actually used destination registers.

    Defined at line 665 of file llvm/lib/Analysis/VectorUtils.cpp

  • std::optional<APInt> ConstantFoldBinOp (unsigned int Opcode, Register Op1, Register Op2, const MachineRegisterInfo & MRI)

    Defined at line 673 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • template <class RemarkT>
    decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, DiagnosticInfoOptimizationBase::setIsVerbose> V)

    Defined at line 674 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • lostFraction combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant)

    Combine the effect of two lost fractions.

    Defined at line 674 of file llvm/lib/Support/APFloat.cpp

  • template <typename... X, class Y>
    bool isa_and_nonnull (const Y & Val)

    Defined at line 676 of file llvm/include/llvm/Support/Casting.h

  • Expected getSlabAllocSize (StringRef SizeString)

    Defined at line 680 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <class X, class Y>
    auto cast_if_present (const Y & Val)

    cast_if_present

    <X

    > - Functionally identical to cast, except that a null

    value is accepted.

    Defined at line 683 of file llvm/include/llvm/Support/Casting.h

  • template <typename T>
    std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingMultiplyAdd (T X, T Y, T A, bool * ResultOverflowed)

    Multiply two unsigned integers, X and Y, and add the unsigned integer, A to

    the product. Clamp the result to the maximum representable value of T on

    overflow. ResultOverflowed indicates if the result is larger than the

    maximum representable value of type T.

    Defined at line 683 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    int SaturatingMultiplyAdd (T X, T Y, T A, bool * ResultOverflowed)

    Multiply two unsigned integers, X and Y, and add the unsigned integer, A to

    the product. Clamp the result to the maximum representable value of T on

    overflow. ResultOverflowed indicates if the result is larger than the

    maximum representable value of type T.

    Defined at line 683 of file llvm/include/llvm/Support/MathExtras.h

  • template <class RemarkT>
    decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, DiagnosticInfoOptimizationBase::setExtraArgs> EA)

    Defined at line 685 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • raw_ostream & operator<< (raw_ostream & OS, const DbgMarker & Marker)

    Defined at line 690 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • template <class X, class Y>
    auto cast_if_present (Y & Val)

    Defined at line 690 of file llvm/include/llvm/Support/Casting.h

  • void initializeMachineBlockPlacementLegacyPass (PassRegistry & )

    Defined at line 691 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const LiveRange & LR)

    Defined at line 691 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • template <typename T>
    bool compareVectors (int & BB1, int & BB2)

    Defined at line 692 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • template <typename T>
    bool compareVectors (std::vector<T> & BB1, std::vector<T> & BB2)

    Defined at line 692 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • unsigned int HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2)

    The error from the true value, in half-ulps, on multiplying two

    floating point numbers, which differ from the value they

    approximate by at most HUE1 and HUE2 half-ulps, is strictly less

    than the returned value.

    See "How to Read Floating Point Numbers Accurately" by William D

    Clinger.

    Defined at line 695 of file llvm/lib/Support/APFloat.cpp

  • FunctionPass * createX86LowerAMXIntrinsicsLegacyPass ()

    Defined at line 699 of file llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp

  • void CloneAndPruneIntoFromInst (Function * NewFunc, const Function * OldFunc, const Instruction * StartingInst, ValueToValueMapTy & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)

    This works like CloneAndPruneFunctionInto, except that it does not clone the

    entire function. Instead it starts at an instruction provided by the caller

    and copies (and prunes) only the code reachable from that instruction.

    Defined at line 702 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void initializeX86LowerAMXIntrinsicsLegacyPassPass (PassRegistry & )

    Defined at line 696 of file llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp

  • void IntroduceControlFlow (Function * F, Random & R)

    Defined at line 696 of file llvm/tools/llvm-stress/llvm-stress.cpp

  • template <class X, class Y>
    auto cast_if_present (Y * Val)

    Defined at line 697 of file llvm/include/llvm/Support/Casting.h

  • template <class BlockT, class LoopT>
    void addInnerLoopsToHeadersMap (DenseMap<BlockT *, const LoopT *> & LoopHeaders, const LoopInfoBase<BlockT, LoopT> & LI, const LoopT & L)

    Defined at line 699 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • template <class BlockT, class LoopT>
    void addInnerLoopsToHeadersMap (int & LoopHeaders, const LoopInfoBase<BlockT, LoopT> & LI, const LoopT & L)

    Defined at line 699 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, T> AddOverflow (T X, T Y, T & Result)

    Add two signed integers, computing the two's complement truncated result,

    returning true if overflow occurred.

    Defined at line 701 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    int AddOverflow (T X, T Y, T & Result)

    Add two signed integers, computing the two's complement truncated result,

    returning true if overflow occurred.

    Defined at line 701 of file llvm/include/llvm/Support/MathExtras.h

  • unique_ptr createInProcessMemoryManager ()

    Defined at line 703 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <class X, class Y>
    auto cast_if_present (std::unique_ptr<Y> && Val)

    Defined at line 705 of file llvm/include/llvm/Support/Casting.h

  • template <class X, class Y>
    auto cast_if_present (int && Val)

    Defined at line 705 of file llvm/include/llvm/Support/Casting.h

  • template <>
    T * unwrap (LLVMDbgRecordRef P)

    Defined at line 706 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • DbgRecord * unwrap (LLVMDbgRecordRef P)

    Defined at line 706 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • LLVMDbgRecordRef wrap (const DbgRecord * P)

    Defined at line 706 of file llvm/include/llvm/IR/DebugProgramInstruction.h

  • template <class BlockT, class LoopT>
    void compareLoops (const LoopT * L, const LoopT * OtherL, DenseMap<BlockT *, const LoopT *> & OtherLoopHeaders)

    Defined at line 709 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • template <class BlockT, class LoopT>
    void compareLoops (const LoopT * L, const LoopT * OtherL, int & OtherLoopHeaders)

    Defined at line 709 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h

  • APFloatBase::integerPart ulpsFromBoundary (const APFloatBase::integerPart * parts, unsigned int bits, bool isNearest)

    The number of ulps from the boundary (zero, or half if ISNEAREST)

    when the least significant BITS are truncated. BITS cannot be

    zero.

    Defined at line 709 of file llvm/lib/Support/APFloat.cpp

  • void breakLoopBackedge (Loop * L, DominatorTree & DT, ScalarEvolution & SE, LoopInfo & LI, MemorySSA * MSSA)

    Remove the backedge of the specified loop. Handles loop nests and general

    loop structures subject to the precondition that the loop has no parent

    loop and has a single latch block. Preserves all listed analyses.

    Defined at line 711 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • DataLayout * unwrap (LLVMTargetDataRef P)

    Defined at line 713 of file llvm/include/llvm/IR/DataLayout.h

  • template <class X, class Y>
    auto cast_or_null (const Y & Val)

    Provide a forwarding from cast_or_null to cast_if_present for current

    users. This is deprecated and will be removed in a future patch, use

    cast_if_present instead.

    Defined at line 714 of file llvm/include/llvm/Support/Casting.h

  • SmallBitVector operator& (const SmallBitVector & LHS, const SmallBitVector & RHS)

    Defined at line 715 of file llvm/include/llvm/ADT/SmallBitVector.h

  • template <typename SV>
    void visitAll (const SCEV * Root, SV & Visitor)

    Use SCEVTraversal to visit all nodes in the given expression tree.

    Defined at line 716 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h

  • LLVMTargetDataRef wrap (const DataLayout * P)

    Defined at line 717 of file llvm/include/llvm/IR/DataLayout.h

  • template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT, typename BucketT>
    bool operator== (const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & RHS)

    Equality comparison for DenseMap.

    Iterates over elements of LHS confirming that each (key, value) pair in LHS

    is also in RHS, and that no additional pairs are in RHS.

    Equivalent to N calls to RHS.find and N value comparisons. Amortized

    complexity is linear, worst case is O(N^2) (if every hash collides).

    Defined at line 717 of file llvm/include/llvm/ADT/DenseMap.h

  • template <class X, class Y>
    auto cast_or_null (Y & Val)

    Defined at line 718 of file llvm/include/llvm/Support/Casting.h

  • SmallBitVector operator| (const SmallBitVector & LHS, const SmallBitVector & RHS)

    Defined at line 722 of file llvm/include/llvm/ADT/SmallBitVector.h

  • template <typename PredTy>
    bool SCEVExprContains (const SCEV * Root, PredTy Pred)

    Return true if any node in

    satisfies the predicate

    Defined at line 723 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h

  • StringRef lexMIToken (StringRef Source, MIToken & Token, function_ref<void (StringRef::iterator, const Twine &)> ErrorCallback)

    Consume a single machine instruction token in the given source and return

    the remaining source string.

    Defined at line 725 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • Error collectGlobalObjectNameStrings (ArrayRef<std::string> NameStrs, bool doCompression, std::string & Result)

    Given a vector of strings (names of global objects like functions or,

    virtual tables)

    the method generates a combined string

    that is ready to be serialized. The

    string is comprised of

    three fields: The first field is the length of the uncompressed strings, and

    the the second field is the length of the zlib-compressed string. Both

    fields are encoded in ULEB128. If

    is false, the

    third field is the uncompressed strings; otherwise it is the

    compressed string. When the string compression is off, the

    second field will have value zero.

    Defined at line 714 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <class X, class Y>
    auto cast_or_null (Y * Val)

    Defined at line 722 of file llvm/include/llvm/Support/Casting.h

  • BasicBlock * SplitCallBrEdge (BasicBlock * CallBrBlock, BasicBlock * Succ, unsigned int SuccIdx, DomTreeUpdater * DTU, CycleInfo * CI, LoopInfo * LI, bool * UpdatedLI)

    Create a new intermediate target block for a callbr edge.

    Create a new basic block between a callbr instruction and one of its

    successors. The new block replaces the original successor in the callbr

    instruction and unconditionally branches to the original successor. This

    is useful for normalizing control flow, e.g., when transforming

    irreducible loops.

    Parameters

    CallBrBlock block containing the callbr instruction
    Succ original successor block
    SuccIdx index of the original successor in the callbr instruction
    DTU optional for updating the dominator tree
    CI optional for updating cycle membership
    LI optional for updating loop membership
    UpdatedLI optional output flag indicating if has been updated

    Defined at line 725 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • template <class X, class Y>
    auto cast_or_null (std::unique_ptr<Y> && Val)

    Defined at line 726 of file llvm/include/llvm/Support/Casting.h

  • template <class X, class Y>
    auto cast_or_null (int && Val)

    Defined at line 726 of file llvm/include/llvm/Support/Casting.h

  • template <>
    ScaledNumber<DigitsT> operator+ (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)

    Defined at line 727 of file llvm/include/llvm/Support/ScaledNumber.h

  • Expected createSimpleRemoteMemoryManager (SimpleRemoteEPC & SREPC)

    Defined at line 727 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <typename T>
    int SubOverflow (T X, T Y, T & Result)

    Subtract two signed integers, computing the two's complement truncated

    result, returning true if an overflow occurred.

    Defined at line 727 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, T> SubOverflow (T X, T Y, T & Result)

    Subtract two signed integers, computing the two's complement truncated

    result, returning true if an overflow occurred.

    Defined at line 727 of file llvm/include/llvm/Support/MathExtras.h

  • template <>
    ScaledNumber<DigitsT> operator- (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)

    Defined at line 728 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    ScaledNumber<DigitsT> operator* (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)

    Defined at line 729 of file llvm/include/llvm/Support/ScaledNumber.h

  • SmallBitVector operator^ (const SmallBitVector & LHS, const SmallBitVector & RHS)

    Defined at line 729 of file llvm/include/llvm/ADT/SmallBitVector.h

  • template <>
    ScaledNumber<DigitsT> operator/ (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)

    Defined at line 730 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <class X, class Y>
    auto dyn_cast_if_present (const Y & Val)

    dyn_cast_if_present

    <X

    > - Functionally identical to dyn_cast, except that a

    null (or none in the case of optionals) value is accepted.

    Defined at line 732 of file llvm/include/llvm/Support/Casting.h

  • template <class DigitsT>
    ScaledNumber<DigitsT> operator<< (const ScaledNumber<DigitsT> & L, int16_t Shift)

    Defined at line 734 of file llvm/include/llvm/Support/ScaledNumber.h

  • uint32_t extractBits (uint64_t Val, uint32_t Hi, uint32_t Lo)

    Returns extract bits Val[Hi:Lo].

    Defined at line 736 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT, typename BucketT>
    bool operator!= (const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & RHS)

    Inequality comparison for DenseMap.

    Equivalent to !(LHS == RHS). See operator== for performance notes.

    Defined at line 737 of file llvm/include/llvm/ADT/DenseMap.h

  • template <class X, class Y>
    auto dyn_cast_if_present (Y & Val)

    Defined at line 738 of file llvm/include/llvm/Support/Casting.h

  • template <class DigitsT>
    ScaledNumber<DigitsT> operator>> (const ScaledNumber<DigitsT> & L, int16_t Shift)

    Defined at line 740 of file llvm/include/llvm/Support/ScaledNumber.h

  • std::optional<APFloat> ConstantFoldFPBinOp (unsigned int Opcode, Register Op1, Register Op2, const MachineRegisterInfo & MRI)

    Defined at line 741 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • uint64_t getLoongArchPageDelta (uint64_t dest, uint64_t pc, uint32_t type)

    Calculate the adjusted page delta between dest and PC. The code is copied

    from lld and see comments there for more details.

    Defined at line 742 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • template <class X, class Y>
    auto dyn_cast_if_present (Y * Val)

    Defined at line 744 of file llvm/include/llvm/Support/Casting.h

  • template <class DigitsT>
    raw_ostream & operator<< (raw_ostream & OS, const ScaledNumber<DigitsT> & X)

    Defined at line 746 of file llvm/include/llvm/Support/ScaledNumber.h

  • Expected createSharedMemoryManager (SimpleRemoteEPC & SREPC)

    Defined at line 748 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <class X, class Y>
    auto dyn_cast_or_null (const Y & Val)

    Forwards to dyn_cast_if_present to avoid breaking current users. This is

    deprecated and will be removed in a future patch, use

    dyn_cast_if_present instead.

    Defined at line 753 of file llvm/include/llvm/Support/Casting.h

  • std::unique_ptr<Module> parseModule (const uint8_t * Data, size_t Size, LLVMContext & Context)

    Fuzzer friendly interface for the llvm bitcode parser.

    Parameters

    Data Bitcode we are going to parse
    Size Size of the 'Data' in bytes

    Returns

    New module or nullptr in case of error

    Defined at line 753 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • template <typename T>
    int MulOverflow (T X, T Y, T & Result)

    Multiply two signed integers, computing the two's complement truncated

    result, returning true if an overflow occurred.

    Defined at line 753 of file llvm/include/llvm/Support/MathExtras.h

  • template <typename T>
    std::enable_if_t<std::is_signed_v<T>, T> MulOverflow (T X, T Y, T & Result)

    Multiply two signed integers, computing the two's complement truncated

    result, returning true if an overflow occurred.

    Defined at line 753 of file llvm/include/llvm/Support/MathExtras.h

  • void initializeObjCARCContractLegacyPassPass (PassRegistry & )

    Defined at line 754 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp

  • StringRef getPGOFuncNameVarInitializer (GlobalVariable * NameVar)

    Return the initializer in string of the PGO name var

    Defined at line 752 of file llvm/lib/ProfileData/InstrProf.cpp

  • unsigned int powerOf5 (APFloatBase::integerPart * dst, unsigned int power)

    Place pow(5, power) in DST, and return the number of parts used.

    DST must be at least one part larger than size of the answer.

    Defined at line 754 of file llvm/lib/Support/APFloat.cpp

  • BasicBlock * unwrap (LLVMBasicBlockRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 757 of file llvm/include/llvm/IR/BasicBlock.h

  • LLVMBasicBlockRef wrap (const BasicBlock * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 757 of file llvm/include/llvm/IR/BasicBlock.h

  • template <class X, class Y>
    auto dyn_cast_or_null (Y & Val)

    Defined at line 757 of file llvm/include/llvm/Support/Casting.h

  • Error collectPGOFuncNameStrings (ArrayRef<GlobalVariable *> NameVars, std::string & Result, bool doCompression)

    Produce

    string with the same format described above. The input

    is vector of PGO function name variables that are referenced.

    The global variable element in 'NameVars' is a string containing the pgo

    name of a function. See `createPGOFuncNameVar` that creates these global

    variables.

    Defined at line 759 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <class X, class Y>
    auto dyn_cast_or_null (Y * Val)

    Defined at line 761 of file llvm/include/llvm/Support/Casting.h

  • template <>
    bool operator< (int64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (const ScaledNumber<DigitsT> & L, int64_t R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (const ScaledNumber<DigitsT> & L, int32_t R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (uint32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (const ScaledNumber<DigitsT> & L, uint32_t R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (uint64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (const ScaledNumber<DigitsT> & L, uint64_t R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator< (int32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h

  • raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::PartialMapping & PartMapping)

    Defined at line 764 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h

  • template <>
    bool operator> (int32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (const ScaledNumber<DigitsT> & L, uint64_t R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (uint64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (const ScaledNumber<DigitsT> & L, uint32_t R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (uint32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (const ScaledNumber<DigitsT> & L, int64_t R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (int64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator> (const ScaledNumber<DigitsT> & L, int32_t R)

    Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h

  • bool operator== (const ValueIterator & A, const ValueIterator & B)

    Defined at line 765 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h

  • template <>
    bool operator== (const ScaledNumber<DigitsT> & L, uint64_t R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (uint64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (const ScaledNumber<DigitsT> & L, uint32_t R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (uint32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (int32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (const ScaledNumber<DigitsT> & L, int32_t R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (int64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator== (const ScaledNumber<DigitsT> & L, int64_t R)

    Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h

  • void initializePeepholeOptimizerLegacyPass (PassRegistry & )

    Defined at line 766 of file llvm/lib/CodeGen/PeepholeOptimizer.cpp

  • template <>
    bool operator!= (int64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (int32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (const ScaledNumber<DigitsT> & L, uint64_t R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (uint64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (const ScaledNumber<DigitsT> & L, uint32_t R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (uint32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (const ScaledNumber<DigitsT> & L, int64_t R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator!= (const ScaledNumber<DigitsT> & L, int32_t R)

    Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (int32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (const ScaledNumber<DigitsT> & L, uint64_t R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (uint64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (const ScaledNumber<DigitsT> & L, uint32_t R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (uint32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (const ScaledNumber<DigitsT> & L, int64_t R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (int64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator<= (const ScaledNumber<DigitsT> & L, int32_t R)

    Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h

  • bool operator!= (const ValueIterator & A, const ValueIterator & B)

    Defined at line 768 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h

  • void setUnwindEdgeTo (Instruction * TI, BasicBlock * Succ)

    Sets the unwind edge of an instruction to a particular successor.

    Defined at line 768 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • template <>
    bool operator>= (const ScaledNumber<DigitsT> & L, int32_t R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (int64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (const ScaledNumber<DigitsT> & L, int64_t R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (int32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (const ScaledNumber<DigitsT> & L, uint64_t R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (uint64_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (const ScaledNumber<DigitsT> & L, uint32_t R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • template <>
    bool operator>= (uint32_t L, const ScaledNumber<DigitsT> & R)

    Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h

  • void cantFail (Error Err, const char * Msg)

    Report a fatal error if Err is a failure value.

    This function can be used to wrap calls to fallible functions ONLY when it

    is known that the Error will always be a success value. E.g.

    Code

                                                    
                                                        {.cpp}
                                                           // foo only attempts the fallible operation if DoFallibleOperation is
                                                           // true. If DoFallibleOperation is false then foo always returns
                                                           // Error::success().
                                                           Error foo(bool DoFallibleOperation);
                                                        
                                                           cantFail(foo(false));
                                                    
                                                

    Defined at line 769 of file llvm/include/llvm/Support/Error.h

  • raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::ValueMapping & ValMapping)

    Defined at line 771 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h

  • template <class X, class Y>
    int unique_dyn_cast (int & Val)

    unique_dyn_cast

    <X

    > - Given a unique_ptr

    <Y

    >, try to return a unique_ptr

    <X

    >,

    taking ownership of the input pointer iff isa

    <X

    >(Val) is true. If the

    cast is successful, From refers to nullptr on exit and the casted value

    is returned. If the cast is unsuccessful, the function returns nullptr

    and From is unchanged.

    Defined at line 771 of file llvm/include/llvm/Support/Casting.h

  • template <class X, class Y>
    typename CastInfo<X, std::unique_ptr<Y>>::CastResultType unique_dyn_cast (std::unique_ptr<Y> & Val)

    unique_dyn_cast

    <X

    > - Given a unique_ptr

    <Y

    >, try to return a unique_ptr

    <X

    >,

    taking ownership of the input pointer iff isa

    <X

    >(Val) is true. If the

    cast is successful, From refers to nullptr on exit and the casted value

    is returned. If the cast is unsuccessful, the function returns nullptr

    and From is unchanged.

    Defined at line 771 of file llvm/include/llvm/Support/Casting.h

  • void replaceCreatedSSACopys (PredicateInfo & PredInfo, Function & F)

    Replace bitcasts created by PredicateInfo with their operand.

    Defined at line 771 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp

  • size_t writeModule (const Module & M, uint8_t * Dest, size_t MaxSize)

    Fuzzer friendly interface for the llvm bitcode printer.

    Parameters

    M Module to print
    Dest Location to store serialized module
    MaxSize Size of the destination buffer

    Returns

    Number of bytes that were written. When module size exceeds MaxSize

    returns 0 and leaves Dest unchanged.

    Defined at line 773 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::InstructionMapping & InstrMapping)

    Defined at line 777 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h

  • void setupEPCRemoteMemoryManager (SimpleRemoteEPC::Setup & S)

    Defined at line 777 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <class X, class Y>
    auto unique_dyn_cast (std::unique_ptr<Y> && Val)

    Defined at line 779 of file llvm/include/llvm/Support/Casting.h

  • template <class X, class Y>
    auto unique_dyn_cast (int && Val)

    Defined at line 779 of file llvm/include/llvm/Support/Casting.h

  • FunctionPass * createVirtRegRewriter (bool ClearVirtRegs)

    Defined at line 782 of file llvm/lib/CodeGen/VirtRegMap.cpp

  • bool isTLIScalarize (const TargetLibraryInfo & TLI, const CallInst & CI)

    Checks if a function is scalarizable according to the TLI, in

    the sense that it should be vectorized and then expanded in

    multiple scalar calls. This is represented in the

    TLI via mappings that do not specify a vector name, as in the

    following example:

    const VecDesc VecIntrinsics[] = {

    {"llvm.phx.abs.i32", "", 4}

    };

    Defined at line 783 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::OperandsMapper & OpdMapper)

    Defined at line 784 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h

  • std::unique_ptr<Module> parseAndVerify (const uint8_t * Data, size_t Size, LLVMContext & Context)

    Try to parse module and verify it. May output verification errors to the

    errs().

    Returns

    New module or nullptr in case of error.

    Defined at line 785 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • template <class X, class Y>
    typename CastInfo<X, std::unique_ptr<Y>>::CastResultType unique_dyn_cast_or_null (std::unique_ptr<Y> & Val)

    unique_dyn_cast_or_null

    <X

    > - Functionally identical to unique_dyn_cast,

    except that a null value is accepted.

    Defined at line 786 of file llvm/include/llvm/Support/Casting.h

  • template <class X, class Y>
    int unique_dyn_cast_or_null (int & Val)

    unique_dyn_cast_or_null

    <X

    > - Functionally identical to unique_dyn_cast,

    except that a null value is accepted.

    Defined at line 786 of file llvm/include/llvm/Support/Casting.h

  • Expected getTestObjectFileInterface (Session & S, MemoryBufferRef O)

    Defined at line 792 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <class X, class Y>
    auto unique_dyn_cast_or_null (std::unique_ptr<Y> && Val)

    Defined at line 794 of file llvm/include/llvm/Support/Casting.h

  • template <class X, class Y>
    auto unique_dyn_cast_or_null (int && Val)

    Defined at line 794 of file llvm/include/llvm/Support/Casting.h

  • template <typename T>
    T cantFail (Expected<T> ValOrErr, const char * Msg)

    Report a fatal error if ValOrErr is a failure value, otherwise unwraps and

    returns the contained value.

    This function can be used to wrap calls to fallible functions ONLY when it

    is known that the Error will always be a success value. E.g.

    Code

                                                    
                                                        {.cpp}
                                                           // foo only attempts the fallible operation if DoFallibleOperation is
                                                           // true. If DoFallibleOperation is false then foo always returns an int.
                                                           Expected<int> foo(bool DoFallibleOperation);
                                                        
                                                           int X = cantFail(foo(false));
                                                    
                                                

    Defined at line 797 of file llvm/include/llvm/Support/Error.h

  • bool isGuaranteedNotToBePoison (const Value * V, AssumptionCache * AC, int CtxI, const DominatorTree * DT, unsigned int Depth)

    Defined at line 799 of file llvm/include/llvm/Analysis/ValueTracking.h

  • bool isGuaranteedNotToBePoison (const Value * V, AssumptionCache * AC, ilist_iterator_w_bits CtxI, const DominatorTree * DT, unsigned int Depth)

    Defined at line 799 of file llvm/include/llvm/Analysis/ValueTracking.h

  • bool canWidenCallReturnType (Type * Ty)

    Returns true if the call return type `Ty` can be widened by the loop

    vectorizer.

    Defined at line 805 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • void reportVectorizationInfo (StringRef Msg, StringRef ORETag, OptimizationRemarkEmitter * ORE, Loop * TheLoop, Instruction * I, DebugLoc DL)

    Reports an informative message: print

    for debugging purposes as well

    as an optimization remark. Uses either

    as location of the remark, or

    otherwise

    If

    is passed, use it as debug location for the

    remark. If

    is passed, use it as debug location for the remark.

    Defined at line 805 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void reportVectorization (OptimizationRemarkEmitter * ORE, Loop * TheLoop, VectorizationFactor VF, unsigned int IC)

    Report successful vectorization of the loop. In case an outer loop is

    vectorized, prepend "outer" to the vectorization remark.

    Defined at line 818 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • template <unsigned ElementSize>
    bool operator|= (SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> * RHS)

    Convenience functions to allow Or and And without dereferencing in the user

    code.

    Defined at line 820 of file llvm/include/llvm/ADT/SparseBitVector.h

  • unsigned int partAsHex (char * dst, APFloatBase::integerPart part, unsigned int count, const char * hexDigitChars)

    Write out an integerPart in hexadecimal, starting with the most

    significant nibble. Write out exactly COUNT hexdigits, return

    COUNT.

    Defined at line 820 of file llvm/lib/Support/APFloat.cpp

  • bool operator== (const NameIterator & A, const NameIterator & B)

    Defined at line 822 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h

  • void updateChildIncompleteness (const DWARFDie & Die, CompileUnit & CU, CompileUnit::DIEInfo & ChildInfo)

    Helper that updates the completeness of the current DIE based on the

    completeness of one of its children. It depends on the incompleteness of

    the children already being computed.

    Defined at line 822 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • int parseReducerWorkItem (StringRef ToolName, StringRef Filename, LLVMContext & Ctxt, int & TM, bool IsMIR)

    Defined at line 822 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • template <class ELFT>
    unique_ptr createELFDumper (const ELFObjectFile<ELFT> & Obj, ScopedPrinter & Writer)

    Defined at line 823 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool operator!= (const NameIterator & A, const NameIterator & B)

    Defined at line 825 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h

  • template <unsigned ElementSize>
    bool operator|= (SparseBitVector<ElementSize> * LHS, const SparseBitVector<ElementSize> & RHS)

    Defined at line 826 of file llvm/include/llvm/ADT/SparseBitVector.h

  • raw_ostream & operator<< (raw_ostream & OS, const indent & Indent)

    Defined at line 827 of file llvm/include/llvm/Support/raw_ostream.h

  • template <typename T>
    T & cantFail (Expected<T &> ValOrErr, const char * Msg)

    Report a fatal error if ValOrErr is a failure value, otherwise unwraps and

    returns the contained reference.

    This function can be used to wrap calls to fallible functions ONLY when it

    is known that the Error will always be a success value. E.g.

    Code

                                                    
                                                        {.cpp}
                                                           // foo only attempts the fallible operation if DoFallibleOperation is
                                                           // true. If DoFallibleOperation is false then foo always returns a Bar&.
                                                           Expected<Bar&> foo(bool DoFallibleOperation);
                                                        
                                                           Bar &X = cantFail(foo(false));
                                                    
                                                

    Defined at line 828 of file llvm/include/llvm/Support/Error.h

  • template <typename T, typename U, typename... Args>
    detail::zippy<detail::zip_shortest, T, U, Args...> zip (T && t, U && u, Args &&... args)

    zip iterator for two or more iteratable types. Iteration continues until the

    end of the *shortest* iteratee is reached.

    Defined at line 829 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T, typename U, typename... Args>
    int zip (T && t, U && u, Args &&... args)

    zip iterator for two or more iteratable types. Iteration continues until the

    end of the *shortest* iteratee is reached.

    Defined at line 829 of file llvm/include/llvm/ADT/STLExtras.h

  • template <unsigned ElementSize>
    bool operator&= (SparseBitVector<ElementSize> * LHS, const SparseBitVector<ElementSize> & RHS)

    Defined at line 832 of file llvm/include/llvm/ADT/SparseBitVector.h

  • unique_ptr createELFDumper (const object::ELFObjectFileBase & Obj, ScopedPrinter & Writer)

    Defined at line 832 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • FunctionPass * createX86LoadValueInjectionLoadHardeningPass ()

    Defined at line 803 of file llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp

  • template <unsigned ElementSize>
    bool operator&= (SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> * RHS)

    Defined at line 838 of file llvm/include/llvm/ADT/SparseBitVector.h

  • char * writeUnsignedDecimal (char * dst, unsigned int n)

    Write out an unsigned decimal integer.

    Defined at line 838 of file llvm/lib/Support/APFloat.cpp

  • bool operator== (const ResourceSegments & c1, const ResourceSegments & c2)

    Defined at line 839 of file llvm/include/llvm/CodeGen/MachineScheduler.h

  • template <typename T, typename U, typename... Args>
    detail::zippy<detail::zip_first, T, U, Args...> zip_equal (T && t, U && u, Args &&... args)

    zip iterator that assumes that all iteratees have the same length.

    In builds with assertions on, this assumption is checked before the

    iteration starts.

    Defined at line 839 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T, typename U, typename... Args>
    int zip_equal (T && t, U && u, Args &&... args)

    zip iterator that assumes that all iteratees have the same length.

    In builds with assertions on, this assumption is checked before the

    iteration starts.

    Defined at line 839 of file llvm/include/llvm/ADT/STLExtras.h

  • void updateRefIncompleteness (const DWARFDie & Die, CompileUnit & CU, CompileUnit::DIEInfo & RefInfo)

    Helper that updates the completeness of the current DIE based on the

    completeness of the DIEs it references. It depends on the incompleteness of

    the referenced DIE already being computed.

    Defined at line 842 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • llvm::raw_ostream & operator<< (llvm::raw_ostream & os, const ResourceSegments & Segments)

    Defined at line 843 of file llvm/include/llvm/CodeGen/MachineScheduler.h

  • bool canReplacePointersInUseIfEqual (const Use & U, const Value * To, const DataLayout & DL)

    Defined at line 845 of file llvm/lib/Analysis/Loads.cpp

  • template <unsigned ElementSize>
    SparseBitVector<ElementSize> operator| (const SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> & RHS)

    Convenience functions for infix union, intersection, difference operators.

    Defined at line 846 of file llvm/include/llvm/ADT/SparseBitVector.h

  • template <typename T, typename = decltype(std::declval<raw_ostream &>()
                                                                          << std::declval<const T &>())>
    raw_ostream & operator<< (raw_ostream & OS, const std::optional<T> & O)

    Defined at line 846 of file llvm/include/llvm/Support/raw_ostream.h

  • BitVector::size_type capacity_in_bytes (const BitVector & X)

    Defined at line 847 of file llvm/include/llvm/ADT/BitVector.h

  • template <typename T, typename U, typename... Args>
    detail::zippy<detail::zip_first, T, U, Args...> zip_first (T && t, U && u, Args &&... args)

    zip iterator that, for the sake of efficiency, assumes the first iteratee to

    be the shortest. Iteration continues until the end of the first iteratee is

    reached. In builds with assertions on, we check that the assumption about

    the first iteratee being the shortest holds.

    Defined at line 852 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T, typename U, typename... Args>
    int zip_first (T && t, U && u, Args &&... args)

    zip iterator that, for the sake of efficiency, assumes the first iteratee to

    be the shortest. Iteration continues until the end of the first iteratee is

    reached. In builds with assertions on, we check that the assumption about

    the first iteratee being the shortest holds.

    Defined at line 852 of file llvm/include/llvm/ADT/STLExtras.h

  • template <unsigned ElementSize>
    SparseBitVector<ElementSize> operator& (const SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> & RHS)

    Defined at line 855 of file llvm/include/llvm/ADT/SparseBitVector.h

  • char * writeSignedDecimal (char * dst, int value)

    Write out a signed decimal integer.

    Defined at line 856 of file llvm/lib/Support/APFloat.cpp

  • Error loadProcessSymbols (Session & S)

    Defined at line 858 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <unsigned ElementSize>
    SparseBitVector<ElementSize> operator- (const SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> & RHS)

    Defined at line 864 of file llvm/include/llvm/ADT/SparseBitVector.h

  • bool canReplacePointersIfEqual (const Value * From, const Value * To, const DataLayout & DL)

    Returns true if a pointer value

    can be replaced with another pointer

    value

    if they are deemed equal through some means (e.g. information from

    conditions).

    NOTE: The current implementation allows replacement in Icmp and PtrToInt

    instructions, as well as when we are replacing with a null pointer.

    Additionally it also allows replacement of pointers when both pointers have

    the same underlying object.

    Defined at line 865 of file llvm/lib/Analysis/Loads.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const TreePatternNode & TPN)

    Defined at line 866 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.h

  • Error loadDylibs (Session & S)

    Defined at line 871 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • APFloat harrisonUlp (const APFloat & X)

    Compute the ULP of the input using a definition from:

    Jean-Michel Muller. On the definition of ulp(x). [Research Report] RR-5504,

    LIP RR-2005-09, INRIA, LIP. 2005, pp.16. inria-00070503

    Defined at line 872 of file llvm/lib/Support/APFloat.cpp

  • template <unsigned ElementSize>
    void dump (const SparseBitVector<ElementSize> & LHS, raw_ostream & out)

    Dump a SparseBitVector to a stream

    Defined at line 874 of file llvm/include/llvm/ADT/SparseBitVector.h

  • template <typename FunctionPassT>
    ModuleToFunctionPassAdaptor createModuleToFunctionPassAdaptor (FunctionPassT && Pass, bool EagerlyInvalidate)

    A function to deduce a function pass type and wrap it in the

    templated adaptor.

    Defined at line 875 of file llvm/include/llvm/IR/PassManager.h

  • template <typename AnalysisT, typename IRUnitT, typename AnalysisManagerT, typename... ExtraArgTs>
    bool parseAnalysisUtilityPasses (StringRef AnalysisName, StringRef PipelineName, PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...> & PM)

    This utility template takes care of adding require

    <

    > and invalidate

    <

    >

    passes for an analysis to a given

    It is intended to be used

    during parsing of a pass pipeline when parsing a single PipelineName.

    When registering a new function analysis FancyAnalysis with the pass

    pipeline name "fancy-analysis", a matching ParsePipelineCallback could look

    like this:

    static bool parseFunctionPipeline(StringRef Name, FunctionPassManager

    &FPM

    ,

    ArrayRef

    <PipelineElement

    > P) {

    if (parseAnalysisUtilityPasses

    <FancyAnalysis

    >("fancy-analysis", Name,

    FPM))

    return true;

    return false;

    }

    Defined at line 883 of file llvm/include/llvm/Passes/PassBuilder.h

  • Expected launchExecutor ()

    Defined at line 883 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • bool operator== (StringRef LHS, StringRef RHS)

    @

    {

    Defined at line 892 of file llvm/include/llvm/ADT/StringRef.h

  • SelectPatternResult matchSelectPattern (const Value * V, const Value *& LHS, const Value *& RHS)

    Defined at line 893 of file llvm/include/llvm/Analysis/ValueTracking.h

  • LinearExpression decomposeLinearExpression (const DataLayout & DL, Value * Ptr)

    Decompose a pointer into a linear expression. This may look through

    multiple GEPs.

    Defined at line 893 of file llvm/lib/Analysis/Loads.cpp

  • bool isODRCanonicalCandidate (const DWARFDie & Die, CompileUnit & CU)

    Defined at line 894 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • bool operator!= (StringRef LHS, StringRef RHS)

    Defined at line 900 of file llvm/include/llvm/ADT/StringRef.h

  • raw_ostream & operator<< (raw_ostream & OS, const Value & V)

    Defined at line 900 of file llvm/include/llvm/IR/Value.h

  • bool operator< (StringRef LHS, StringRef RHS)

    Defined at line 902 of file llvm/include/llvm/ADT/StringRef.h

  • bool operator<= (StringRef LHS, StringRef RHS)

    Defined at line 906 of file llvm/include/llvm/ADT/StringRef.h

  • bool operator> (StringRef LHS, StringRef RHS)

    Defined at line 910 of file llvm/include/llvm/ADT/StringRef.h

  • bool operator>= (StringRef LHS, StringRef RHS)

    Defined at line 914 of file llvm/include/llvm/ADT/StringRef.h

  • std::string & operator+= (std::string & buffer, StringRef string)

    Defined at line 918 of file llvm/include/llvm/ADT/StringRef.h

  • std::string & operator+= (std::string & buffer, StringRef string)

    Defined at line 918 of file llvm/include/llvm/ADT/StringRef.h

  • raw_ostream & operator<< (raw_ostream & OS, const LiveInterval::SubRange & SR)

    Defined at line 925 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • template <typename CycleT>
    bool insertIfNotContained (SmallVector<CycleT *> & Cycles, CycleT * Candidate)

    Add

    to

    if it is not already contained in

    Returns

    true iff

    was added to

    Defined at line 928 of file llvm/include/llvm/ADT/GenericUniformityImpl.h

  • template <typename CycleT>
    bool insertIfNotContained (int & Cycles, CycleT * Candidate)

    Add

    to

    if it is not already contained in

    Returns

    true iff

    was added to

    Defined at line 928 of file llvm/include/llvm/ADT/GenericUniformityImpl.h

  • raw_ostream & operator<< (raw_ostream & OS, const LiveInterval & LI)

    Defined at line 931 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • bool operator< (SlotIndex V, const LiveRange::Segment & S)

    Defined at line 939 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • Type * checkGEPType (Type * Ty)

    checkGEPType - Simple wrapper function to give a better assertion failure

    message on bad indexes for a gep instruction.

    Defined at line 942 of file llvm/include/llvm/IR/Instructions.h

  • bool operator< (const LiveRange::Segment & S, SlotIndex V)

    Defined at line 943 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • template <typename CycleT, typename BlockT>
    const CycleT * getExtDivCycle (const CycleT * Cycle, const BlockT * DivTermBlock, const BlockT * JoinBlock)

    Return the outermost cycle made divergent by branch outside it.

    If two paths that diverged outside an irreducible cycle join

    inside that cycle, then that whole cycle is assumed to be

    divergent. This does not apply if the cycle is reducible.

    Defined at line 943 of file llvm/include/llvm/ADT/GenericUniformityImpl.h

  • Error handleErrorImpl (unique_ptr Payload)

    Defined at line 946 of file llvm/include/llvm/Support/Error.h

  • Error handleErrorImpl (int Payload)

    Defined at line 946 of file llvm/include/llvm/Support/Error.h

  • void createPHIsForSplitLoopExit (ArrayRef<BasicBlock *> Preds, BasicBlock * SplitBB, BasicBlock * DestBB)

    When a loop exit edge is split, LCSSA form may require new PHIs in the new

    exit block. This function inserts the new PHIs, as needed. Preds is a list

    of preds inside the loop, SplitBB is the new loop exit block, and DestBB is

    the old loop exit, now the successor of SplitBB.

    Defined at line 949 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • template <typename HandlerT, typename... HandlerTs>
    Error handleErrorImpl (int Payload, HandlerT && Handler, HandlerTs &&... Handlers)

    Defined at line 951 of file llvm/include/llvm/Support/Error.h

  • template <typename HandlerT, typename... HandlerTs>
    Error handleErrorImpl (unique_ptr Payload, HandlerT && Handler, HandlerTs &&... Handlers)

    Defined at line 951 of file llvm/include/llvm/Support/Error.h

  • Error createTCPSocketError (Twine Details)

    Defined at line 959 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • Expected connectTCPSocket (basic_string Host, basic_string PortStr)

    Defined at line 966 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <typename T, typename U, typename... Args>
    detail::zip_longest_range<T, U, Args...> zip_longest (T && t, U && u, Args &&... args)

    Iterate over two or more iterators at the same time. Iteration continues

    until all iterators reach the end. The std::optional only contains a value

    if the iterator has not reached the end.

    Defined at line 980 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>
    const CycleT * getIntDivCycle (const CycleT * Cycle, const BlockT * DivTermBlock, const BlockT * JoinBlock, const DominatorTreeT & DT, ContextT & Context)

    Return the outermost cycle made divergent by branch inside it.

    This checks the "diverged entry" criterion defined in the

    docs/ConvergenceAnalysis.html.

    Defined at line 980 of file llvm/include/llvm/ADT/GenericUniformityImpl.h

  • ErrorOr canonicalizePath (StringRef P)

    Defined at line 989 of file llvm/lib/Object/ArchiveWriter.cpp

  • template <typename... HandlerTs>
    void handleAllErrors (Error E, HandlerTs &&... Handlers)

    Behaves the same as handleErrors, except that by contract all errors

    *must* be handled by the given handlers (i.e. there must be no remaining

    errors after running the handlers, or llvm_unreachable is called).

    Defined at line 990 of file llvm/include/llvm/Support/Error.h

  • void handleAllErrors (Error E)

    Check that E is a non-error, then drop it.

    If E is an error, llvm_unreachable will be called.

    Defined at line 996 of file llvm/include/llvm/Support/Error.h

  • raw_ostream & operator<< (raw_ostream & OS, const LiveRangeUpdater & X)

    Defined at line 1001 of file llvm/include/llvm/CodeGen/LiveInterval.h

  • Expected connectToExecutor ()

    Defined at line 1004 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>
    const CycleT * getOutermostDivergentCycle (const CycleT * Cycle, const BlockT * DivTermBlock, const BlockT * JoinBlock, const DominatorTreeT & DT, ContextT & Context)

    Defined at line 1018 of file llvm/include/llvm/ADT/GenericUniformityImpl.h

  • void exportDebugifyStats (StringRef Path, const DebugifyStatsMap & Map)

    Defined at line 1024 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • uint16_t applyPPClo (uint64_t value)

    Relocation masks following the #lo(value), #hi(value), #ha(value),

    #higher(value), #highera(value), #highest(value), and #highesta(value)

    macros defined in section 4.5.1. Relocation Types of the PPC-elf64abi

    document.

    Defined at line 1042 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • template <typename T, typename RecoveryFtor, typename... HandlerTs>
    Expected<T> handleExpected (Expected<T> ValOrErr, RecoveryFtor && RecoveryPath, HandlerTs &&... Handlers)

    Handle any errors (if present) in an Expected

    <T

    >, then try a recovery path.

    If the incoming value is a success value it is returned unmodified. If it

    is a failure value then it the contained error is passed to handleErrors.

    If handleErrors is able to handle the error then the RecoveryPath functor

    is called to supply the final result. If handleErrors is not able to

    handle all errors then the unhandled errors are returned.

    This utility enables the follow pattern:

    Code

                                                    
                                                        {.cpp}
                                                           enum FooStrategy { Aggressive, Conservative };
                                                           Expected<Foo> foo(FooStrategy S);
                                                        
                                                           auto ResultOrErr =
                                                             handleExpected(
                                                               foo(Aggressive),
                                                               []() { return foo(Conservative); },
                                                               [](AggressiveStrategyError&) {
                                                                 // Implicitly conusme this - we'll recover by using a conservative
                                                                 // strategy.
                                                               });
                                                        
                                                    
                                                

    Defined at line 1042 of file llvm/include/llvm/Support/Error.h

  • uint16_t applyPPChi (uint64_t value)

    Defined at line 1044 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • uint16_t applyPPCha (uint64_t value)

    Defined at line 1048 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • uint16_t applyPPChigher (uint64_t value)

    Defined at line 1052 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • uint16_t applyPPChighera (uint64_t value)

    Defined at line 1056 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • Expected createLazyLinkingSupport (Session & S)

    Defined at line 1059 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • uint16_t applyPPChighest (uint64_t value)

    Defined at line 1060 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const MachineOperand & MO)

    Defined at line 1061 of file llvm/include/llvm/CodeGen/MachineOperand.h

  • uint16_t applyPPChighesta (uint64_t value)

    Defined at line 1064 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • raw_ostream & operator<< (raw_ostream & O, const Module & M)

    An raw_ostream inserter for modules.

    Defined at line 1069 of file llvm/include/llvm/IR/Module.h

  • bool promoteLoopAccessesToScalars (const SmallSetVector<Value *, 8> & , SmallVectorImpl<BasicBlock *> & , int & , SmallVectorImpl<MemoryAccess *> & , PredIteratorCache & , LoopInfo * , DominatorTree * , AssumptionCache * AC, const TargetLibraryInfo * , TargetTransformInfo * , Loop * , MemorySSAUpdater & , ICFLoopSafetyInfo * , OptimizationRemarkEmitter * , bool AllowSpeculation, bool HasReadsOutsideSet)

    Try to promote memory values to scalars by sinking stores out of

    the loop and moving loads to before the loop. We do this by looping over

    the stores in the loop, looking for stores to Must pointers which are

    loop invariant. It takes a set of must-alias values, Loop exit blocks

    vector, loop exit blocks insertion point vector, PredIteratorCache,

    LoopInfo, DominatorTree, Loop, AliasSet information for all instructions

    of the loop and loop safety information as arguments.

    Diagnostics is emitted via

    It returns changed status.

    is whether values should be hoisted even if they are not

    guaranteed to execute in the loop, but are safe to speculatively execute.

    Defined at line of file

  • template <typename IRUnitT>
    void printIRUnitNameForStackTrace (raw_ostream & OS, const IRUnitT & IR)

    Defined at line of file

  • void printIRUnitNameForStackTrace (raw_ostream & OS, const Module & IR)

    Defined at line of file

  • DiagnosticInfo * unwrap (LLVMDiagnosticInfoRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1065 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • LLVMDiagnosticInfoRef wrap (const DiagnosticInfo * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1065 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • Module * unwrap (LLVMModuleRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1075 of file llvm/include/llvm/IR/Module.h

  • LLVMModuleRef wrap (const Module * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1075 of file llvm/include/llvm/IR/Module.h

  • Value * unwrap (LLVMValueRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1077 of file llvm/include/llvm/IR/Value.h

  • template <>
    T * unwrap (LLVMValueRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1077 of file llvm/include/llvm/IR/Value.h

  • LLVMValueRef wrap (const Value * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1077 of file llvm/include/llvm/IR/Value.h

  • Module * unwrap (LLVMModuleProviderRef MP)

    LLVMModuleProviderRef exists for historical reasons, but now just holds a

    Module.

    Defined at line 1080 of file llvm/include/llvm/IR/Module.h

  • Value ** unwrap (LLVMValueRef * Vals)

    Specialized opaque value conversions.

    Defined at line 1080 of file llvm/include/llvm/IR/Value.h

  • void consumeError (Error Err)

    Consume a Error without doing anything. This method should be used

    only where an error can be considered a reasonable and expected return

    value.

    Uses of this method are potentially indicative of design problems: If it's

    legitimate to do nothing while processing an "error", the error-producer

    might be more clearly refactored to return an std::optional

    <T

    >.

    Defined at line 1083 of file llvm/include/llvm/Support/Error.h

  • template <typename T>
    T ** unwrap (LLVMValueRef * Vals, unsigned int Length)

    Defined at line 1085 of file llvm/include/llvm/IR/Value.h

  • Error writeLazyExecOrder (Session & S)

    Defined at line 1091 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • LLVMValueRef * wrap (const Value ** Vals)

    Defined at line 1094 of file llvm/include/llvm/IR/Value.h

  • template <typename T>
    std::optional<T> expectedToOptional (Expected<T> && E)

    Convert an Expected to an Optional without doing anything. This method

    should be used only where an error can be considered a reasonable and

    expected return value.

    Uses of this method are potentially indicative of problems: perhaps the

    error should be propagated further, or the error-producer should just

    return an Optional in the first place.

    Defined at line 1094 of file llvm/include/llvm/Support/Error.h

  • template <typename T>
    std::optional<T> expectedToStdOptional (Expected<T> && E)

    Defined at line 1101 of file llvm/include/llvm/Support/Error.h

  • bool errorToBool (Error Err)

    Helper for converting an Error to a bool.

    This method returns true if Err is in an error state, or false if it is

    in a success state. Puts Err in a checked state in both cases (unlike

    Error::operator bool(), which only does this for success states).

    Defined at line 1113 of file llvm/include/llvm/Support/Error.h

  • bool findHistogram (LoadInst * LI, StoreInst * HSt, Loop * TheLoop, const PredicatedScalarEvolution & PSE, SmallVectorImpl<HistogramInfo> & Histograms)

    Find histogram operations that match high-level code in loops:

    It matches a pattern starting from

    which Stores to the 'buckets'

    array the computed histogram. It uses a BinOp to sum all counts, storing

    them using a loop-variant index Load from the 'indices' input array.

    On successful matches it updates the STATISTIC 'HistogramsDetected',

    regardless of hardware support. When there is support, it additionally

    stores the BinOp/Load pairs in

    as well the pointers

    used to update histogram in

    Code

                                                    
                                                         buckets[indices[i]]+=step;
                                                    
                                                

    Defined at line 1127 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp

  • uint32_t getNumValueKindsInstrProf (const void * Record)

    ValueProfRecordClosure Interface implementation for InstrProfRecord

    class. These C wrappers are used as adaptors so that C++ code can be

    invoked as callbacks.

    Defined at line 1136 of file llvm/lib/ProfileData/InstrProf.cpp

  • void verifyKeepChain (CompileUnit & CU)

    Verify the keep chain by looking for DIEs that are kept but who's parent

    isn't.

    Defined at line 1137 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • uint32_t getNumValueSitesInstrProf (const void * Record, uint32_t VKind)

    Defined at line 1140 of file llvm/lib/ProfileData/InstrProf.cpp

  • uint32_t getNumValueDataInstrProf (const void * Record, uint32_t VKind)

    Defined at line 1145 of file llvm/lib/ProfileData/InstrProf.cpp

  • DiagnosticSeverity getDiagnosticSeverity (DiagKind DK)

    Defined at line 1148 of file llvm/include/llvm/IR/DiagnosticInfo.h

  • template <typename ValueT, typename... RangeTs>
    detail::concat_range<ValueT, RangeTs...> concat (RangeTs &&... Ranges)

    Returns a concatenated range across two or more ranges. Does not modify the

    ranges.

    The desired value type must be explicitly specified.

    Defined at line 1149 of file llvm/include/llvm/ADT/STLExtras.h

  • uint32_t getNumValueDataForSiteInstrProf (const void * R, uint32_t VK, uint32_t S)

    Defined at line 1150 of file llvm/lib/ProfileData/InstrProf.cpp

  • void getValueForSiteInstrProf (const void * R, InstrProfValueData * Dst, uint32_t K, uint32_t S)

    Defined at line 1156 of file llvm/lib/ProfileData/InstrProf.cpp

  • ValueProfData * allocValueProfDataInstrProf (size_t TotalSizeInBytes)

    Defined at line 1162 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool operator== (const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & LHS, const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & RHS)

    Defined at line 1217 of file llvm/include/llvm/ADT/DenseMap.h

  • template <>
    T * unwrap (LLVMDIBuilderRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1224 of file llvm/include/llvm/IR/DIBuilder.h

  • DIBuilder * unwrap (LLVMDIBuilderRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1224 of file llvm/include/llvm/IR/DIBuilder.h

  • LLVMDIBuilderRef wrap (const DIBuilder * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1224 of file llvm/include/llvm/IR/DIBuilder.h

  • bool operator!= (const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & LHS, const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & RHS)

    Defined at line 1228 of file llvm/include/llvm/ADT/DenseMap.h

  • error_code errnoAsErrorCode ()

    Helper to get errno as an std::error_code.

    errno should always be represented using the generic category as that's what

    both libc++ and libstdc++ do. On POSIX systems you can also represent them

    using the system category, however this makes them compare differently for

    values outside of those used by `std::errc` if one is generic and the other

    is system.

    See the libc++ and libstdc++ implementations of `default_error_condition` on

    the system category for more details on what the difference is.

    Defined at line 1240 of file llvm/include/llvm/Support/Error.h

  • template <typename T>
    Expected<T> errorOrToExpected (ErrorOr<T> && EO)

    Convert an ErrorOr

    <T

    > to an Expected

    <T

    >.

    Defined at line 1245 of file llvm/include/llvm/Support/Error.h

  • unique_ptr allocValueProfData (uint32_t TotalSize)

    Defined at line 1247 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <typename T>
    ErrorOr<T> expectedToErrorOr (Expected<T> && E)

    Convert an Expected

    <T

    > to an ErrorOr

    <T

    >.

    Defined at line 1252 of file llvm/include/llvm/Support/Error.h

  • template <typename KeyT, typename ValueT, typename KeyInfoT>
    size_t capacity_in_bytes (const int & X)

    Defined at line 1267 of file llvm/include/llvm/ADT/DenseMap.h

  • template <typename KeyT, typename ValueT, typename KeyInfoT>
    size_t capacity_in_bytes (const DenseMap<KeyT, ValueT, KeyInfoT> & X)

    Defined at line 1267 of file llvm/include/llvm/ADT/DenseMap.h

  • void applyUTypeImmRISCV (uint8_t * InstrAddr, uint32_t Imm)

    Defined at line 1267 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • void applyITypeImmRISCV (uint8_t * InstrAddr, uint32_t Imm)

    Defined at line 1273 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • template <typename T, unsigned N>
    size_t capacity_in_bytes (const SmallVector<T, N> & X)

    Defined at line 1293 of file llvm/include/llvm/ADT/SmallVector.h

  • template <unsigned Size, typename R>
    SmallVector<ValueTypeFromRangeType<R>, Size> to_vector (R && Range)

    Given a range of type R, iterate the entire range and return a

    SmallVector with elements of the vector. This is useful, for example,

    when you want to iterate a range and then sort the results.

    Defined at line 1305 of file llvm/include/llvm/ADT/SmallVector.h

  • template <unsigned Size, typename R>
    SmallVector<ValueTypeFromRangeType<R>, Size> to_vector (R && Range)

    Given a range of type R, iterate the entire range and return a

    SmallVector with elements of the vector. This is useful, for example,

    when you want to iterate a range and then sort the results.

    Defined at line 1305 of file llvm/include/llvm/ADT/SmallVector.h

  • template <unsigned Size, typename R>
    int to_vector (R && Range)

    Given a range of type R, iterate the entire range and return a

    SmallVector with elements of the vector. This is useful, for example,

    when you want to iterate a range and then sort the results.

    Defined at line 1305 of file llvm/include/llvm/ADT/SmallVector.h

  • template <typename... Ts>
    Error createStringError (error_code EC, const char * Fmt, const Ts &... Vals)

    Create formatted StringError object.

    Defined at line 1305 of file llvm/include/llvm/Support/Error.h

  • upward_defs_iterator upward_defs_begin (const MemoryAccessPair & Pair, DominatorTree & DT)

    Defined at line 1307 of file llvm/include/llvm/Analysis/MemorySSA.h

  • template <typename R>
    SmallVector<ValueTypeFromRangeType<R>> to_vector (R && Range)

    Defined at line 1309 of file llvm/include/llvm/ADT/SmallVector.h

  • template <typename R>
    SmallVector<ValueTypeFromRangeType<R>> to_vector (R && Range)

    Defined at line 1309 of file llvm/include/llvm/ADT/SmallVector.h

  • template <typename R>
    int to_vector (R && Range)

    Defined at line 1309 of file llvm/include/llvm/ADT/SmallVector.h

  • upward_defs_iterator upward_defs_end ()

    Defined at line 1312 of file llvm/include/llvm/Analysis/MemorySSA.h

  • template <typename Out, unsigned Size, typename R>
    SmallVector<Out, Size> to_vector_of (R && Range)

    Defined at line 1314 of file llvm/include/llvm/ADT/SmallVector.h

  • Error createStringError (error_code EC, const char * S)

    Defined at line 1314 of file llvm/include/llvm/Support/Error.h

  • iterator_range upward_defs (const MemoryAccessPair & Pair, DominatorTree & DT)

    Defined at line 1314 of file llvm/include/llvm/Analysis/MemorySSA.h

  • template <typename Out, typename R>
    int to_vector_of (R && Range)

    Defined at line 1318 of file llvm/include/llvm/ADT/SmallVector.h

  • template <typename Out, typename R>
    SmallVector<Out> to_vector_of (R && Range)

    Defined at line 1318 of file llvm/include/llvm/ADT/SmallVector.h

  • Error createStringError (error_code EC, const Twine & S)

    Defined at line 1318 of file llvm/include/llvm/Support/Error.h

  • Error createStringError (const Twine & S)

    Create a StringError with an inconvertible error code.

    Defined at line 1323 of file llvm/include/llvm/Support/Error.h

  • unique_ptr createRuntimeDyldCOFF (ArchType Arch, RuntimeDyld::MemoryManager & MM, JITSymbolResolver & Resolver, bool ProcessAllSections, function NotifyStubEmitted)

    Defined at line 1324 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • template <typename... Ts>
    Error createStringError (const char * Fmt, const Ts &... Vals)

    Defined at line 1328 of file llvm/include/llvm/Support/Error.h

  • template <typename... Ts>
    Error createStringError (errc EC, const char * Fmt, const Ts &... Vals)

    Defined at line 1333 of file llvm/include/llvm/Support/Error.h

  • unique_ptr createRuntimeDyldELF (ArchType Arch, RuntimeDyld::MemoryManager & MM, JITSymbolResolver & Resolver, bool ProcessAllSections, function NotifyStubEmitted)

    Defined at line 1336 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • unique_ptr createRuntimeDyldMachO (ArchType Arch, RuntimeDyld::MemoryManager & MM, JITSymbolResolver & Resolver, bool ProcessAllSections, function NotifyStubEmitted)

    Defined at line 1347 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • template <class T>
    int def_chain (T MA, MemoryAccess * UpTo)

    Defined at line 1362 of file llvm/include/llvm/Analysis/MemorySSA.h

  • template <class T>
    iterator_range<def_chain_iterator<T>> def_chain (T MA, MemoryAccess * UpTo)

    Defined at line 1362 of file llvm/include/llvm/Analysis/MemorySSA.h

  • FunctionPass * createX86LowerAMXTypeLegacyPass ()

    Defined at line 1367 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • template <class T>
    iterator_range<def_chain_iterator<T, true>> optimized_def_chain (T MA)

    Defined at line 1372 of file llvm/include/llvm/Analysis/MemorySSA.h

  • MDNode * mayHaveValueProfileOfKind (const Instruction & Inst, InstrProfValueKind ValueKind)

    Defined at line 1378 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <typename ContainerTy>
    auto make_first_range (ContainerTy && c)

    Given a container of pairs, return a range over the first elements.

    Defined at line 1397 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename ContainerTy>
    auto make_second_range (ContainerTy && c)

    Given a container of pairs, return a range over the second elements.

    Defined at line 1407 of file llvm/include/llvm/ADT/STLExtras.h

  • Error createFileError (const Twine & F, error_code EC)

    Concatenate a source file path and/or name with a std::error_code

    to form an Error object.

    Defined at line 1411 of file llvm/include/llvm/Support/Error.h

  • Error createFileError (const Twine & F, size_t Line, error_code EC)

    Concatenate a source file path and/or name with line number and

    std::error_code to form an Error object.

    Defined at line 1417 of file llvm/include/llvm/Support/Error.h

  • template <typename ContainerTy>
    auto reverse_conditionally (ContainerTy && C, bool ShouldReverse)

    Return a range that conditionally reverses

    The collection is iterated

    in reverse if

    is true (otherwise, it is iterated forwards).

    Defined at line 1421 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename Strategy = GenericScheduler>
    ScheduleDAGMILive * createSchedLive (MachineSchedContext * C)

    Create the standard converging machine scheduler. This will be used as the

    default scheduler if the target does not set a default.

    Adds default DAG mutations.

    Defined at line 1422 of file llvm/include/llvm/CodeGen/MachineScheduler.h

  • Error createFileError (const Twine & F, error_code EC, const Twine & S)

    Create a StringError with the specified error code and prepend the file path

    to it.

    Defined at line 1423 of file llvm/include/llvm/Support/Error.h

  • template <typename... Ts>
    Error createFileError (const Twine & F, error_code EC, const char * Fmt, const Ts &... Vals)

    Create a StringError with the specified error code and prepend the file path

    to it.

    Defined at line 1432 of file llvm/include/llvm/Support/Error.h

  • auto successors (const MachineBasicBlock * BB)

    These accessors are handy for sharing templated code between IR and MIR.

    Defined at line 1437 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • Error createFileError (const Twine & F, ErrorSuccess )

    Defined at line 1438 of file llvm/include/llvm/Support/Error.h

  • auto predecessors (const MachineBasicBlock * BB)

    Defined at line 1438 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • unsigned int succ_size (const MachineBasicBlock * BB)

    Defined at line 1441 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • unsigned int pred_size (const MachineBasicBlock * BB)

    Defined at line 1442 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • template <typename Strategy = PostGenericScheduler>
    ScheduleDAGMI * createSchedPostRA (MachineSchedContext * C)

    Create a generic scheduler with no vreg liveness or DAG mutation passes.

    Defined at line 1442 of file llvm/include/llvm/CodeGen/MachineScheduler.h

  • auto succ_begin (const MachineBasicBlock * BB)

    Defined at line 1443 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • auto pred_begin (const MachineBasicBlock * BB)

    Defined at line 1444 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • void createPGONameMetadata (GlobalObject & GO, StringRef MetadataName, StringRef PGOName)

    Defined at line 1444 of file llvm/lib/ProfileData/InstrProf.cpp

  • auto succ_end (const MachineBasicBlock * BB)

    Defined at line 1445 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • auto pred_end (const MachineBasicBlock * BB)

    Defined at line 1446 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • template <typename IterT>
    IterT skipDebugInstructionsForward (IterT It, IterT End, bool SkipPseudoOp)

    Increment

    until it points to a non-debug instruction or to

    and return the resulting iterator. This function should only be used

    MachineBasicBlock::{iterator, const_iterator, instr_iterator,

    const_instr_iterator} and the respective reverse iterators.

    Defined at line 1477 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • template <class IterT>
    IterT skipDebugInstructionsBackward (IterT It, IterT Begin, bool SkipPseudoOp)

    Decrement

    until it points to a non-debug instruction or to

    and return the resulting iterator. This function should only be used

    MachineBasicBlock::{iterator, const_iterator, instr_iterator,

    const_instr_iterator} and the respective reverse iterators.

    Defined at line 1490 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • Error unwrap (LLVMErrorRef ErrRef)

    Conversion from LLVMErrorRef to Error for C error bindings.

    Defined at line 1495 of file llvm/include/llvm/Support/Error.h

  • template <typename IterT>
    IterT next_nodbg (IterT It, IterT End, bool SkipPseudoOp)

    Increment

    then continue incrementing it while it points to a debug

    instruction. A replacement for std::next.

    Defined at line 1501 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • template <typename IterT>
    IterT prev_nodbg (IterT It, IterT Begin, bool SkipPseudoOp)

    Decrement

    then continue decrementing it while it points to a debug

    instruction. A replacement for std::prev.

    Defined at line 1508 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • bool operator== (PtrAuthData Lhs, PtrAuthData Rhs)

    Defined at line 1509 of file llvm/include/llvm/IR/DebugInfoMetadata.h

  • bool operator!= (PtrAuthData Lhs, PtrAuthData Rhs)

    Defined at line 1514 of file llvm/include/llvm/IR/DebugInfoMetadata.h

  • template <typename IterT>
    auto instructionsWithoutDebug (IterT It, IterT End, bool SkipPseudoOp)

    Construct a range iterator which begins at

    and moves forwards until

    is reached, skipping any debug instructions.

    Defined at line 1515 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h

  • template <typename... CallableTs>
    decltype(auto) makeVisitor (CallableTs &&... Callables)

    Returns an opaquely-typed Callable object whose operator() overload set is

    the sum of the operator() overload sets of each CallableT in CallableTs.

    The type of the returned object derives from each CallableT in CallableTs.

    The returned object is constructed by invoking the appropriate copy or move

    constructor of each CallableT, as selected by overload resolution on the

    corresponding argument to makeVisitor.

    Example:

    Example of making a visitor with a lambda which captures a move-only type:

    Code

                                                    
                                                         auto visitor = makeVisitor([](auto) { return "unhandled type"; },
                                                                                    [](int i) { return "int"; },
                                                                                    [](std::string s) { return "str"; });
                                                         auto a = visitor(42);    // `a` is now "int".
                                                         auto b = visitor("foo"); // `b` is now "str".
                                                         auto c = visitor(3.14f); // `c` is now "unhandled type".
                                                    
                                                
                                                    
                                                         std::unique_ptr<FooHandler> FH = /* ... */;
                                                         auto visitor = makeVisitor(
                                                             [FH{std::move(FH)}](Foo F) { return FH->handle(F); },
                                                             [](int i) { return i; },
                                                             [](std::string s) { return atoi(s); });
                                                    
                                                

    Defined at line 1517 of file llvm/include/llvm/ADT/STLExtras.h

  • template <class Iterator, class RNG>
    void shuffle (Iterator first, Iterator last, RNG && g)

    We have a copy here so that LLVM behaves the same when using different

    standard libraries.

    Defined at line 1528 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T>
    int array_pod_sort_comparator (const void * P1, const void * P2)

    Adapt std::less

    <T

    > for array_pod_sort.

    Defined at line 1544 of file llvm/include/llvm/ADT/STLExtras.h

  • APFloat abs (APFloat X)

    Returns the absolute value of the argument.

    Defined at line 1545 of file llvm/include/llvm/ADT/APFloat.h

  • APFloat neg (APFloat X)

    Returns the negated value of the argument.

    Defined at line 1551 of file llvm/include/llvm/ADT/APFloat.h

  • template <typename T>
    int (*)(const void *, const void *) get_array_pod_sort_comparator (const T & )

    get_array_pod_sort_comparator - This is an internal helper function used to

    get type deduction of T right.

    Defined at line 1557 of file llvm/include/llvm/ADT/STLExtras.h

  • APFloat minnum (const APFloat & A, const APFloat & B)

    Implements IEEE-754 2008 minNum semantics. Returns the smaller of the

    2 arguments if both are not NaN. If either argument is a qNaN, returns the

    other argument. If either argument is sNaN, return a qNaN.

    -0 is treated as ordered less than +0.

    Defined at line 1560 of file llvm/include/llvm/ADT/APFloat.h

  • StringRef detectStubKind (const Session::MemoryRegionInfo & Stub)

    Defined at line 1569 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • APFloat maxnum (const APFloat & A, const APFloat & B)

    Implements IEEE-754 2008 maxNum semantics. Returns the larger of the

    2 arguments if both are not NaN. If either argument is a qNaN, returns the

    other argument. If either argument is sNaN, return a qNaN.

    +0 is treated as ordered greater than -0.

    Defined at line 1579 of file llvm/include/llvm/ADT/APFloat.h

  • template <class IteratorTy>
    void array_pod_sort (IteratorTy Start, IteratorTy End)

    array_pod_sort - This sorts an array with the specified start and end

    extent. This is just like std::sort, except that it calls qsort instead of

    using an inlined template. qsort is slightly slower than std::sort, but

    most sorts are not performance critical in LLVM and std::sort has to be

    template instantiated for each type, leading to significant measured code

    bloat. This function should generally be used instead of std::sort where

    possible.

    This function assumes that you have simple POD-like types that can be

    compared with std::less and can be moved with memcpy. If this isn't true,

    you should use std::sort.

    NOTE: If qsort_r were portable, we could allow a custom comparator and

    default to std::less.

    Defined at line 1594 of file llvm/include/llvm/ADT/STLExtras.h

  • APFloat minimum (const APFloat & A, const APFloat & B)

    Implements IEEE 754-2019 minimum semantics. Returns the smaller of 2

    arguments, returning a quiet NaN if an argument is a NaN and treating -0

    as less than +0.

    Defined at line 1597 of file llvm/include/llvm/ADT/APFloat.h

  • template <class IteratorTy>
    void array_pod_sort (IteratorTy Start, IteratorTy End, int (*)(const typename std::iterator_traits<IteratorTy>::value_type *, const typename std::iterator_traits<IteratorTy>::value_type *) Compare)

    Defined at line 1606 of file llvm/include/llvm/ADT/STLExtras.h

  • APFloat minimumnum (const APFloat & A, const APFloat & B)

    Implements IEEE 754-2019 minimumNumber semantics. Returns the smaller

    of 2 arguments, not propagating NaNs and treating -0 as less than +0.

    Defined at line 1610 of file llvm/include/llvm/ADT/APFloat.h

  • raw_ostream & operator<< (raw_ostream & OS, const RecordVal & RV)

    Defined at line 1624 of file llvm/include/llvm/TableGen/Record.h

  • APFloat maximum (const APFloat & A, const APFloat & B)

    Implements IEEE 754-2019 maximum semantics. Returns the larger of 2

    arguments, returning a quiet NaN if an argument is a NaN and treating -0

    as less than +0.

    Defined at line 1624 of file llvm/include/llvm/ADT/APFloat.h

  • template <typename IteratorTy>
    void sort (IteratorTy Start, IteratorTy End)

    Provide wrappers to std::sort which shuffle the elements before sorting

    to help uncover non-deterministic behavior (PR35135).

    Defined at line 1634 of file llvm/include/llvm/ADT/STLExtras.h

  • APFloat maximumnum (const APFloat & A, const APFloat & B)

    Implements IEEE 754-2019 maximumNumber semantics. Returns the larger

    of 2 arguments, not propagating NaNs and treating -0 as less than +0.

    Defined at line 1637 of file llvm/include/llvm/ADT/APFloat.h

  • template <typename Container>
    void sort (Container && C)

    Defined at line 1647 of file llvm/include/llvm/ADT/STLExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const APFloat & V)

    Defined at line 1648 of file llvm/include/llvm/ADT/APFloat.h

  • template <typename IteratorTy, typename Compare>
    void sort (IteratorTy Start, IteratorTy End, Compare Comp)

    Defined at line 1652 of file llvm/include/llvm/ADT/STLExtras.h

  • uint32_t getWeightFromBranchProb (BranchProbability Prob)

    A helper function that converts a branch probability into weight.

    Defined at line 1656 of file llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h

  • template <typename Container, typename Compare>
    void sort (Container && C, Compare Comp)

    Defined at line 1660 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R>
    auto size (R && Range, int * )

    Get the size of a range. This is a wrapper function around std::distance

    which is only enabled when the operation is O(1).

    Defined at line 1667 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R>
    auto size (R && Range, std::enable_if_t<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<decltype(Range.begin())>::iterator_category>::value, void> * )

    Get the size of a range. This is a wrapper function around std::distance

    which is only enabled when the operation is O(1).

    Defined at line 1667 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename E>
    auto accumulate (R && Range, E && Init)

    Wrapper for std::accumulate.

    Defined at line 1700 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename E, typename BinaryOp>
    auto accumulate (R && Range, E && Init, BinaryOp && Op)

    Wrapper for std::accumulate with a binary operator.

    Defined at line 1707 of file llvm/include/llvm/ADT/STLExtras.h

  • basic_string getUniqueInternalLinkagePostfix (const StringRef & FName)

    Prepend "__uniq" before the hash for tools like profilers to understand

    that this symbol is of internal linkage type. The "__uniq" is the

    pre-determined prefix that is used to tell tools that this symbol was

    created with -funique-internal-linkage-symbols and the tools can strip or

    keep the prefix as needed.

    Defined at line 1710 of file llvm/include/llvm/ProfileData/SampleProf.h

  • template <typename R, typename E = detail::ValueOfRange<R>>
    auto sum_of (R && Range, E Init)

    Returns the sum of all values in `Range` with `Init` initial value.

    The default initial value is 0.

    Defined at line 1715 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename E = detail::ValueOfRange<R>>
    auto product_of (R && Range, E Init)

    Returns the product of all values in `Range` with `Init` initial value.

    The default initial value is 1.

    Defined at line 1722 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename UnaryFunction>
    UnaryFunction for_each (R && Range, UnaryFunction F)

    Provide wrappers to std::for_each which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 1730 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename UnaryPredicate>
    bool none_of (R && Range, UnaryPredicate P)

    Provide wrappers to std::none_of which take ranges instead of having to pass

    begin/end explicitly.

    Defined at line 1751 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T>
    void fill (R && Range, T && Value)

    Provide wrappers to std::fill which take ranges instead of having to pass

    begin/end explicitly.

    Defined at line 1757 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T>
    auto find (R && Range, const T & Val)

    Provide wrappers to std::find which take ranges instead of having to pass

    begin/end explicitly.

    Defined at line 1763 of file llvm/include/llvm/ADT/STLExtras.h

  • bool isConvergenceControlIntrinsic (unsigned int IntrinsicID)

    Check if

    corresponds to a convergence control intrinsic.

    Defined at line 1763 of file llvm/include/llvm/IR/IntrinsicInst.h

  • template <typename R, typename UnaryPredicate>
    auto find_if (R && Range, UnaryPredicate P)

    Provide wrappers to std::find_if which take ranges instead of having to pass

    begin/end explicitly.

    Defined at line 1770 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename UnaryPredicate>
    auto find_if_not (R && Range, UnaryPredicate P)

    Defined at line 1775 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename UnaryPredicate>
    auto remove_if (R && Range, UnaryPredicate P)

    Provide wrappers to std::remove_if which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 1782 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename OutputIt, typename UnaryPredicate>
    OutputIt copy_if (R && Range, OutputIt Out, UnaryPredicate P)

    Provide wrappers to std::copy_if which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 1789 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R1, typename R2>
    auto search (R1 && Range1, R2 && Range2)

    Provide wrappers to std::search which searches for the first occurrence of

    Range2 within Range1.

    Defined at line 1797 of file llvm/include/llvm/ADT/STLExtras.h

  • Value * emitSPrintf (Value * Dest, Value * Fmt, ArrayRef VariadicArgs, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the sprintf function.

    Defined at line 1797 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename R1, typename R2, typename BinaryPredicate>
    auto search (R1 && Range1, R2 && Range2, BinaryPredicate P)

    Provide wrappers to std::search which searches for the first occurrence of

    Range2 within Range1 using predicate `P`.

    Defined at line 1807 of file llvm/include/llvm/ADT/STLExtras.h

  • Value * emitStrCat (Value * Dest, Value * Src, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strcat function.

    Defined at line 1809 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename R>
    auto adjacent_find (R && Range)

    Provide wrappers to std::adjacent_find which finds the first pair of

    adjacent elements that are equal.

    Defined at line 1816 of file llvm/include/llvm/ADT/STLExtras.h

  • Value * emitStrLCpy (Value * Dest, Value * Src, Value * Size, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strlcpy function.

    Defined at line 1817 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename R, typename BinaryPredicate>
    auto adjacent_find (R && Range, BinaryPredicate P)

    Provide wrappers to std::adjacent_find which finds the first pair of

    adjacent elements that are satisfy `P`.

    Defined at line 1825 of file llvm/include/llvm/ADT/STLExtras.h

  • Value * emitStrLCat (Value * Dest, Value * Src, Value * Size, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strlcat function.

    Defined at line 1826 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Value * emitStrNCat (Value * Dest, Value * Src, Value * Size, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the strncat function.

    Defined at line 1835 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • unique_ptr createXCOFFDumper (const object::XCOFFObjectFile & Obj, ScopedPrinter & Writer)

    Defined at line 1247 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp

  • void initializeMemoryDependenceWrapperPassPass (PassRegistry & )

    Defined at line 1733 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • Align tryEnforceAlignment (Value * V, Align PrefAlign, const DataLayout & DL)

    If the specified pointer points to an object that we control, try to modify

    the object's alignment to PrefAlign. Returns a minimum known alignment of

    the value after the operation, which may be lower than PrefAlign.

    Increating value alignment isn't often possible though. If alignment is

    important, a more reliable approach is to simply align all global variables

    and allocation instructions to their preferred alignment from the beginning.

    Defined at line 1517 of file llvm/lib/Transforms/Utils/Local.cpp

  • void initializeX86AsmPrinterPass (PassRegistry & )

    Defined at line 1110 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • template <typename T, typename R, typename Predicate>
    T * find_singleton (R && Range, Predicate P, bool AllowRepeats)

    Return the single value in

    that satisfies

    of

    *, AllowRepeats)->T * returning nullptr

    when no values or multiple values were found.

    When

    is true, multiple values that compare equal

    are allowed.

    Defined at line 1835 of file llvm/include/llvm/ADT/STLExtras.h

  • bool shouldSkipAttribute (bool Update, AttributeSpec AttrSpec, bool SkipPC)

    Defined at line 1836 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • Value * emitVSNPrintf (Value * Dest, Value * Size, Value * Fmt, Value * VAList, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the vsnprintf function.

    Defined at line 1844 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Value * emitVSPrintf (Value * Dest, Value * Fmt, Value * VAList, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the vsprintf function.

    Defined at line 1855 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename T, typename R, typename Predicate>
    std::pair<T *, bool> find_singleton_nested (R && Range, Predicate P, bool AllowRepeats)

    Return a pair consisting of the single value in

    that satisfies

    of

    *, AllowRepeats)->std::pair

    <T

    *, bool> returning

    nullptr when no values or multiple values were found, and a bool indicating

    whether multiple values were found to cause the nullptr.

    When

    is true, multiple values that compare equal are

    allowed. The predicate

    returns a pair

    <T

    *, bool> where T is the

    singleton while the bool indicates whether multiples have already been

    found. It is expected that first will be nullptr when second is true.

    This allows using find_singleton_nested within the predicate

    .

    Defined at line 1860 of file llvm/include/llvm/ADT/STLExtras.h

  • NamedMDNode * unwrap (LLVMNamedMDNodeRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1862 of file llvm/include/llvm/IR/Metadata.h

  • template <>
    T * unwrap (LLVMNamedMDNodeRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1862 of file llvm/include/llvm/IR/Metadata.h

  • LLVMNamedMDNodeRef wrap (const NamedMDNode * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 1862 of file llvm/include/llvm/IR/Metadata.h

  • template <typename R, typename OutputIt>
    OutputIt copy (R && Range, OutputIt Out)

    Defined at line 1883 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename OutputIt, typename UnaryPredicate, typename T>
    OutputIt replace_copy_if (R && Range, OutputIt Out, UnaryPredicate P, const T & NewValue)

    Provide wrappers to std::replace_copy_if which take ranges instead of having

    to pass begin/end explicitly.

    Defined at line 1890 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename OutputIt, typename T>
    OutputIt replace_copy (R && Range, OutputIt Out, const T & OldValue, const T & NewValue)

    Provide wrappers to std::replace_copy which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 1899 of file llvm/include/llvm/ADT/STLExtras.h

  • Value * emitUnaryFloatFnCall (Value * Op, const TargetLibraryInfo * TLI, StringRef Name, IRBuilderBase & B, const AttributeList & Attrs)

    Emit a call to the unary function named 'Name' (e.g. 'floor'). This

    function is known to take a single of type matching 'Op' and returns one

    value with the same type. If 'Op' is a long double, 'l' is added as the

    suffix of name, if 'Op' is a float, we add a 'f' suffix.

    Defined at line 1902 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename R, typename T>
    void replace (R && Range, const T & OldValue, const T & NewValue)

    Provide wrappers to std::replace which take ranges instead of having to pass

    begin/end explicitly.

    Defined at line 1908 of file llvm/include/llvm/ADT/STLExtras.h

  • bool promoteLoopAccessesToScalars (const SmallSetVector<Value *, 8> & , SmallVectorImpl<BasicBlock *> & , SmallVectorImpl<BasicBlock::iterator> & , SmallVectorImpl<MemoryAccess *> & , PredIteratorCache & , LoopInfo * , DominatorTree * , AssumptionCache * AC, const TargetLibraryInfo * , TargetTransformInfo * , Loop * , MemorySSAUpdater & , ICFLoopSafetyInfo * , OptimizationRemarkEmitter * , bool AllowSpeculation, bool HasReadsOutsideSet)

    Try to promote memory values to scalars by sinking stores out of

    the loop and moving loads to before the loop. We do this by looping over

    the stores in the loop, looking for stores to Must pointers which are

    loop invariant. It takes a set of must-alias values, Loop exit blocks

    vector, loop exit blocks insertion point vector, PredIteratorCache,

    LoopInfo, DominatorTree, Loop, AliasSet information for all instructions

    of the loop and loop safety information as arguments.

    Diagnostics is emitted via

    It returns changed status.

    is whether values should be hoisted even if they are not

    guaranteed to execute in the loop, but are safe to speculatively execute.

    Defined at line 1912 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • Value * emitUnaryFloatFnCall (Value * Op, const TargetLibraryInfo * TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilderBase & B, const AttributeList & Attrs)

    Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn,

    depending of the type of Op.

    Defined at line 1914 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename R, typename OutputIt>
    OutputIt move (R && Range, OutputIt Out)

    Provide wrappers to std::move which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 1915 of file llvm/include/llvm/ADT/STLExtras.h

  • FunctionPass * createFastRegisterAllocator ()

    FastRegisterAllocation Pass - This pass register allocates as fast as

    possible. It is best suited for debug code where live ranges are short.

    Defined at line 1918 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • template <typename R, typename E>
    bool is_contained (R && Range, const E & Element)

    Returns true if

    is found in

    Delegates the check to

    either `.contains(Element)`, `.find(Element)`, or `std::find`, in this

    order of preference. This is intended as the canonical way to check if an

    element exists in a range in generic code or range type that does not

    expose a `.contains(Element)` member.

    Defined at line 1945 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T, typename E>
    bool is_contained (std::initializer_list<T> Set, const E & Element)

    Returns true iff

    exists in

    This overload takes

    as

    an initializer list and is `constexpr`-friendly.

    Defined at line 1958 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename Compare>
    bool is_sorted (R && Range, Compare C)

    Wrapper function around std::is_sorted to check if elements in a range

    are sorted with respect to a comparator

    Defined at line 1968 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R>
    bool is_sorted (R && Range)

    Wrapper function around std::is_sorted to check if elements in a range

    are sorted in non-descending order.

    Defined at line 1974 of file llvm/include/llvm/ADT/STLExtras.h

  • bool isIntOrFPConstant (SDValue V)

    Return true if

    is either a integer or FP constant.

    Defined at line 1976 of file llvm/include/llvm/CodeGen/SelectionDAGNodes.h

  • template <typename R1, typename R2>
    bool includes (R1 && Range1, R2 && Range2)

    Provide wrappers to std::includes which take ranges instead of having to

    pass begin/end explicitly.

    This function checks if the sorted range

    is a subsequence of the

    sorted range

    The ranges must be sorted in non-descending order.

    Defined at line 1982 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R1, typename R2, typename Compare>
    bool includes (R1 && Range1, R2 && Range2, Compare && C)

    This function checks if the sorted range

    is a subsequence of the

    sorted range

    The ranges must be sorted with respect to a comparator

    Defined at line 1993 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename E>
    auto count (R && Range, const E & Element)

    Wrapper function around std::count to count the number of times an element

    occurs in the given range

    Defined at line 2002 of file llvm/include/llvm/ADT/STLExtras.h

  • InstructionSelector * createX86InstructionSelector (const X86TargetMachine & TM, const X86Subtarget & , const X86RegisterBankInfo & )

    Defined at line 2007 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp

  • template <typename R, typename UnaryPredicate>
    auto count_if (R && Range, UnaryPredicate P)

    Wrapper function around std::count_if to count the number of times an

    element satisfying a given predicate occurs in a range.

    Defined at line 2009 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename OutputIt, typename UnaryFunction>
    OutputIt transform (R && Range, OutputIt d_first, UnaryFunction F)

    Wrapper function around std::transform to apply a function to a range and

    store the result elsewhere.

    Defined at line 2016 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename UnaryPredicate>
    auto partition (R && Range, UnaryPredicate P)

    Provide wrappers to std::partition which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 2023 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T>
    auto binary_search (R && Range, T && Value)

    Provide wrappers to std::binary_search which take ranges instead of having

    to pass begin/end explicitly.

    Defined at line 2029 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T, typename Compare>
    auto binary_search (R && Range, T && Value, Compare C)

    Defined at line 2035 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T>
    auto lower_bound (R && Range, T && Value)

    Provide wrappers to std::lower_bound which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 2042 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T, typename Compare>
    auto lower_bound (R && Range, T && Value, Compare C)

    Defined at line 2048 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T>
    auto upper_bound (R && Range, T && Value)

    Provide wrappers to std::upper_bound which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 2055 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename T, typename Compare>
    auto upper_bound (R && Range, T && Value, Compare C)

    Defined at line 2061 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R>
    auto min_element (R && Range)

    Provide wrappers to std::min_element which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 2068 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename Compare>
    auto min_element (R && Range, Compare C)

    Defined at line 2072 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R>
    auto max_element (R && Range)

    Provide wrappers to std::max_element which take ranges instead of having to

    pass begin/end explicitly.

    Defined at line 2078 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename Compare>
    auto max_element (R && Range, Compare C)

    Defined at line 2082 of file llvm/include/llvm/ADT/STLExtras.h

  • const IntrinsicData * getIntrinsicWithoutChain (unsigned int IntNo)

    Retrieve data for Intrinsic without chain.

    Return nullptr if intrinsic is not defined in the table.

    Defined at line 2084 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h

  • void verifyIntrinsicTables ()

    Defined at line 2091 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h

  • template <typename R1, typename R2>
    auto mismatch (R1 && Range1, R2 && Range2)

    Provide wrappers to std::mismatch which take ranges instead of having to

    pass begin/end explicitly.

    This function returns a pair of iterators for the first mismatching elements

    from `R1` and `R2`. As an example, if:

    R1 = [0, 1, 4, 6], R2 = [0, 1, 5, 6]

    this function will return a pair of iterators, first pointing to R1[2] and

    second pointing to R2[2].

    Defined at line 2095 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename IterTy>
    auto uninitialized_copy (R && Src, IterTy Dst)

    Defined at line 2101 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R>
    void stable_sort (R && Range)

    Defined at line 2106 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename R, typename Compare>
    void stable_sort (R && Range, Compare C)

    Defined at line 2111 of file llvm/include/llvm/ADT/STLExtras.h

  • bool operator== (uint64_t V1, const APInt & V2)

    Defined at line 2112 of file llvm/include/llvm/ADT/APInt.h

  • bool operator!= (uint64_t V1, const APInt & V2)

    Defined at line 2114 of file llvm/include/llvm/ADT/APInt.h

  • template <typename R, typename Predicate, typename Val = decltype(*adl_begin(std::declval<R>()))>
    auto partition_point (R && Range, Predicate P)

    Binary search for the first iterator in a range where a predicate is false.

    Requires that C is always true below some limit, and always false above it.

    Defined at line 2119 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator~ (APInt v)

    Unary bitwise complement operator.

    Defined at line 2119 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Range, typename Predicate>
    auto unique (Range && R, Predicate P)

    Defined at line 2124 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator& (APInt a, const APInt & b)

    Defined at line 2124 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator& (const APInt & a, APInt && b)

    Defined at line 2129 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Range>
    auto unique (Range && R)

    Wrapper function around std::unique to allow calling unique on a

    container without having to specify the begin/end iterators.

    Defined at line 2130 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator& (APInt a, uint64_t RHS)

    Defined at line 2134 of file llvm/include/llvm/ADT/APInt.h

  • template <typename L, typename R>
    bool equal (L && LRange, R && RRange)

    Wrapper function around std::equal to detect if pair-wise elements between

    two ranges are the same.

    Defined at line 2136 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator& (uint64_t LHS, APInt b)

    Defined at line 2139 of file llvm/include/llvm/ADT/APInt.h

  • template <typename L, typename R, typename BinaryPredicate>
    bool equal (L && LRange, R && RRange, BinaryPredicate P)

    Defined at line 2142 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator| (APInt a, const APInt & b)

    Defined at line 2144 of file llvm/include/llvm/ADT/APInt.h

  • raw_ostream & operator<< (raw_ostream & OS, const MachineInstr & MI)

    ===----------------------------------------------------------------------===//

    Debugging Support

    Defined at line 2148 of file llvm/include/llvm/CodeGen/MachineInstr.h

  • template <typename R>
    bool all_equal (R && Range)

    Returns true if all elements in Range are equal or when the Range is empty.

    Defined at line 2148 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator| (const APInt & a, APInt && b)

    Defined at line 2149 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator| (APInt a, uint64_t RHS)

    Defined at line 2154 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator| (uint64_t LHS, APInt b)

    Defined at line 2159 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator^ (APInt a, const APInt & b)

    Defined at line 2164 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Container, typename UnaryPredicate>
    void erase_if (Container & C, UnaryPredicate P)

    Provide a container algorithm similar to C++ Library Fundamentals v2's

    `erase_if` which is equivalent to:

    C.erase(remove_if(C, pred), C.end());

    This version works for any container with an erase method call accepting

    two iterators.

    Defined at line 2168 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator^ (const APInt & a, APInt && b)

    Defined at line 2169 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator^ (APInt a, uint64_t RHS)

    Defined at line 2174 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Container, typename ValueType>
    void erase (Container & C, ValueType V)

    Wrapper function to remove a value from a container:

    C.erase(remove(C.begin(), C.end(), V), C.end());

    Defined at line 2176 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator^ (uint64_t LHS, APInt b)

    Defined at line 2179 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Container, typename Range>
    void append_range (Container & C, Range && R)

    Wrapper function to append range `R` to container `C`.

    C.insert(C.end(), R.begin(), R.end());

    Defined at line 2184 of file llvm/include/llvm/ADT/STLExtras.h

  • raw_ostream & operator<< (raw_ostream & OS, const APInt & I)

    Defined at line 2184 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Container, typename... Args>
    void append_values (Container & C, Args &&... Values)

    Appends all `Values` to container `C`.

    Defined at line 2190 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator+ (APInt a, const APInt & b)

    Defined at line 2194 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator+ (const APInt & a, APInt && b)

    Defined at line 2199 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator+ (APInt a, uint64_t RHS)

    Defined at line 2204 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator+ (uint64_t LHS, APInt b)

    Defined at line 2209 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Container, typename RandomAccessIterator>
    void replace (Container & Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, RandomAccessIterator ValIt, RandomAccessIterator ValEnd)

    Given a sequence container Cont, replace the range [ContIt, ContEnd) with

    the range [ValIt, ValEnd) (which is not from the same container).

    Defined at line 2209 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator- (APInt a, const APInt & b)

    Defined at line 2214 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator- (const APInt & a, APInt && b)

    Defined at line 2219 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator- (APInt a, uint64_t RHS)

    Defined at line 2225 of file llvm/include/llvm/ADT/APInt.h

  • APInt operator- (uint64_t LHS, APInt b)

    Defined at line 2230 of file llvm/include/llvm/ADT/APInt.h

  • template <typename Container, typename Range = std::initializer_list<
                                                                  typename Container::value_type>>
    void replace (Container & Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, Range && R)

    Given a sequence container Cont, replace the range [ContIt, ContEnd) with

    the range R.

    Defined at line 2231 of file llvm/include/llvm/ADT/STLExtras.h

  • APInt operator* (APInt a, uint64_t RHS)

    Defined at line 2236 of file llvm/include/llvm/ADT/APInt.h

  • void patchAddrBase (DIE & Die, DIEInteger Offset)

    Defined at line 2240 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • APInt operator* (uint64_t LHS, APInt b)

    Defined at line 2241 of file llvm/include/llvm/ADT/APInt.h

  • template <typename ForwardIterator, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t<
                                              !std::is_constructible<StringRef, UnaryFunctor>::value &&
                                              !std::is_constructible<StringRef, NullaryFunctor>::value>>
    void interleave (ForwardIterator begin, ForwardIterator end, UnaryFunctor each_fn, NullaryFunctor between_fn)

    An STL-style algorithm similar to std::for_each that applies a second

    functor between every pair of elements.

    This provides the control flow logic to, for example, print a

    comma-separated list:

    Code

                                                    
                                                           interleave(names.begin(), names.end(),
                                                                      [&](StringRef name) { os << name; },
                                                                      [&] { os << ", "; });
                                                    
                                                

    Defined at line 2251 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename Container, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t<
                                              !std::is_constructible<StringRef, UnaryFunctor>::value &&
                                              !std::is_constructible<StringRef, NullaryFunctor>::value>>
    void interleave (const Container & c, UnaryFunctor each_fn, NullaryFunctor between_fn)

    Defined at line 2267 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>
    void interleave (const Container & c, StreamT & os, UnaryFunctor each_fn, const StringRef & separator)

    Overload of interleave for the common case of string separator.

    Defined at line 2275 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>
    void interleave (const Container & c, StreamT & os, const StringRef & separator)

    Defined at line 2281 of file llvm/include/llvm/ADT/STLExtras.h

  • void insertLineSequence (int & Seq, int & Rows)

    Insert the new line info sequence

    into the current

    set of already linked line info

    Defined at line 2282 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • template <typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>
    void interleaveComma (const Container & c, StreamT & os, UnaryFunctor each_fn)

    Defined at line 2289 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>
    void interleaveComma (const Container & c, StreamT & os)

    Defined at line 2295 of file llvm/include/llvm/ADT/STLExtras.h

  • void patchStmtList (DIE & Die, DIEInteger Offset)

    Defined at line 2316 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • bool simplifyCFG (BasicBlock * BB, const TargetTransformInfo & TTI, DomTreeUpdater * DTU, const SimplifyCFGOptions & Options, ArrayRef LoopHeaders)

    Defined at line 8969 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * simplifyCastInst (unsigned int CastOpc, Value * Op, Type * Ty, const SimplifyQuery & Q)

    Given operands for a CastInst, fold the result or return null.

    Defined at line 5539 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeMachineBlockPlacementStatsLegacyPass (PassRegistry & )

    Defined at line 3901 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • Expected<std::unique_ptr<Module>> getOwningLazyBitcodeModule (std::unique_ptr<MemoryBuffer> && Buffer, LLVMContext & Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks)

    Like getLazyBitcodeModule, except that the module takes ownership of

    the memory buffer if successful. If successful, this moves Buffer. On

    error, this *does not* move Buffer. If IsImporting is true, this module is

    being parsed for ThinLTO importing into another module.

    Defined at line 8720 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * simplifyBinaryIntrinsic (Intrinsic::ID IID, Type * ReturnType, Value * Op0, Value * Op1, const SimplifyQuery & Q, const CallBase * Call)

    Given operands for a BinaryIntrinsic, fold the result or return null.

    Defined at line 6729 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Constant * getLosslessInvCast (Constant * C, Type * InvCastTo, unsigned int CastOp, const DataLayout & DL, PreservedCastFlags * Flags)

    Try to cast C to InvC losslessly, satisfying CastOp(InvC) equals C, or

    CastOp(InvC) is a refined value of undefined C. Will try best to

    preserve the flags.

    Defined at line 4725 of file llvm/lib/Analysis/ConstantFolding.cpp

  • Constant * getLosslessUnsignedTrunc (Constant * C, Type * DestTy, const DataLayout & DL, PreservedCastFlags * Flags)

    Defined at line 4764 of file llvm/lib/Analysis/ConstantFolding.cpp

  • Expected<std::string> getBitcodeTargetTriple (MemoryBufferRef Buffer)

    Read the header of the specified bitcode buffer and extract just the

    triple information. If successful, this returns a string. On error, this

    returns "".

    Defined at line 8747 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * simplifyShuffleVectorInst (Value * Op0, Value * Op1, ArrayRef Mask, Type * RetTy, const SimplifyQuery & Q)

    Given operands for a ShuffleVectorInst, fold the result or return null.

    Defined at line 5708 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool foldBranchToCommonDest (BranchInst * BI, llvm::DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU, const TargetTransformInfo * TTI, unsigned int BonusInstThreshold)

    If this basic block is ONLY a setcc and a branch, and if a predecessor

    branches to us and one of our successors, fold the setcc into the

    predecessor and use logical operations to pick the right destination.

    Defined at line 4125 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool parseMachineBasicBlockDefinitions (PerFunctionMIParsingState & PFS, StringRef Src, SMDiagnostic & Error)

    Parse the machine basic block definitions, and skip the machine

    instructions.

    This function runs the first parsing pass on the machine function's body.

    It parses only the machine basic block definitions and creates the machine

    basic blocks in the given machine function.

    The machine instructions aren't parsed during the first pass because all

    the machine basic blocks aren't defined yet - this makes it impossible to

    resolve the machine basic block references.

    Return true if an error occurred.

    Defined at line 3659 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Constant * getLosslessSignedTrunc (Constant * C, Type * DestTy, const DataLayout & DL, PreservedCastFlags * Flags)

    Defined at line 4770 of file llvm/lib/Analysis/ConstantFolding.cpp

  • Expected<bool> isBitcodeContainingObjCCategory (MemoryBufferRef Buffer)

    Return true if

    contains a bitcode file with ObjC code (category

    or class) in it.

    Defined at line 8755 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * simplifyCmpInst (CmpPredicate Predicate, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for a CmpInst, fold the result or return null.

    Defined at line 6276 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Expected<std::string> getBitcodeProducerString (MemoryBufferRef Buffer)

    Read the header of the specified bitcode buffer and extract just the

    producer string information. If successful, this returns a string. On

    error, this returns "".

    Defined at line 8763 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void checkForCycles (const SelectionDAG * DAG, bool force)

    Defined at line 14410 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • Value * simplifyUnOp (unsigned int Opcode, Value * Op, const SimplifyQuery & Q)

    Given operand for a UnaryOperator, fold the result or return null.

    Defined at line 6179 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext & Context, ParserCallbacks Callbacks)

    Read the specified bitcode file, returning the module.

    Defined at line 8737 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool parseMachineInstructions (PerFunctionMIParsingState & PFS, StringRef Src, SMDiagnostic & Error)

    Parse the machine instructions.

    This function runs the second parsing pass on the machine function's body.

    It skips the machine basic block definitions and parses only the machine

    instructions and basic block attributes like liveins and successors.

    The second parsing pass assumes that the first parsing pass already ran

    on the given source string.

    Return true if an error occurred.

    Defined at line 3665 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Value * simplifyUnOp (unsigned int Opcode, Value * Op, FastMathFlags FMF, const SimplifyQuery & Q)

    Given operand for a UnaryOperator, fold the result or return null.

    Try to use FastMathFlags when folding the result.

    Defined at line 6183 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool parseMBBReference (PerFunctionMIParsingState & PFS, MachineBasicBlock *& MBB, StringRef Src, SMDiagnostic & Error)

    Defined at line 3670 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Expected<BitcodeLTOInfo> getBitcodeLTOInfo (MemoryBufferRef Buffer)

    Returns LTO information for the specified bitcode file.

    Defined at line 8789 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • FunctionPass * createX86SpeculativeLoadHardeningPass ()

    Defined at line 2265 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • Value * simplifyBinOp (unsigned int Opcode, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Given operands for a BinaryOperator, fold the result or return null.

    Defined at line 6258 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Intrinsic::ID getIntrinsicForCallSite (const CallBase & CB, const TargetLibraryInfo * TLI)

    Map a call instruction to an intrinsic ID. Libcalls which have equivalent

    intrinsics are treated as-if they were intrinsics.

    Defined at line 4587 of file llvm/lib/Analysis/ValueTracking.cpp

  • int getModuleSummaryIndex (MemoryBufferRef Buffer)

    Parse the specified bitcode buffer, returning the module summary index.

    Defined at line 8780 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool parseRegisterReference (PerFunctionMIParsingState & PFS, Register & Reg, StringRef Src, SMDiagnostic & Error)

    Defined at line 3676 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Value * simplifyBinOp (unsigned int Opcode, Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q)

    Given operands for a BinaryOperator, fold the result or return null.

    Try to use FastMathFlags when folding the result.

    Defined at line 6263 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void dumpCodeViewMergedTypes (ScopedPrinter & Writer, ArrayRef<ArrayRef<uint8_t>> IpiRecords, ArrayRef<ArrayRef<uint8_t>> TpiRecords)

    Defined at line 2513 of file llvm/tools/llvm-readobj/COFFDumper.cpp

  • bool isSignBitCheck (Predicate Pred, const APInt & RHS, bool & TrueIfSigned)

    Given an exploded icmp instruction, return true if the comparison only

    checks the sign bit. If it only checks the sign bit, set TrueIfSigned if

    the result of the comparison is true when the input value is signed.

    Defined at line 4737 of file llvm/lib/Analysis/ValueTracking.cpp

  • Error readModuleSummaryIndex (MemoryBufferRef Buffer, ModuleSummaryIndex & CombinedIndex)

    Parse the specified bitcode buffer and merge the index into CombinedIndex.

    Defined at line 8771 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool parseNamedRegisterReference (PerFunctionMIParsingState & PFS, Register & Reg, StringRef Src, SMDiagnostic & Error)

    Defined at line 3682 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Value * simplifyCall (CallBase * Call, Value * Callee, ArrayRef Args, const SimplifyQuery & Q)

    Given a callsite, callee, and arguments, fold the result or return null.

    Defined at line 7339 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool parseVirtualRegisterReference (PerFunctionMIParsingState & PFS, VRegInfo *& Info, StringRef Src, SMDiagnostic & Error)

    Defined at line 3688 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • void initializeMergeICmpsLegacyPassPass (PassRegistry & )

    Defined at line 956 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • FunctionPass * createFastRegisterAllocator (RegAllocFilterFunc F, bool ClearVirtRegs)

    Defined at line 1920 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • void initializeModuleSummaryIndexWrapperPassPass (PassRegistry & )

    Defined at line 1186 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • void initializeModuloScheduleTestPass (PassRegistry & )

    Defined at line 2804 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • bool parseStackObjectReference (PerFunctionMIParsingState & PFS, int & FI, StringRef Src, SMDiagnostic & Error)

    Defined at line 3694 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • int getModuleSummaryIndexForFile (StringRef Path, bool IgnoreEmptyThinLTOIndexFile)

    Parse the module summary index out of an IR file and return the module

    summary index object if found, or an empty summary if not. If Path refers

    to an empty file and IgnoreEmptyThinLTOIndexFile is true, then

    this function will return nullptr.

    Defined at line 8797 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * emitBinaryFloatFnCall (Value * Op1, Value * Op2, const TargetLibraryInfo * TLI, StringRef Name, IRBuilderBase & B, const AttributeList & Attrs)

    Emit a call to the binary function named 'Name' (e.g. 'fmin'). This

    function is known to take type matching 'Op1' and 'Op2' and return one

    value with the same type. If 'Op1/Op2' are long double, 'l' is added as

    the suffix of name, if 'Op1/Op2' are float, we add a 'f' suffix.

    Defined at line 1952 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void printIRUnitNameForStackTrace (raw_ostream & OS, const Function & IR)

    Defined at line of file

  • void initializeX86CmovConverterPassPass (PassRegistry & )

    Defined at line 890 of file llvm/lib/Target/X86/X86CmovConversion.cpp

  • bool parseMDNode (PerFunctionMIParsingState & PFS, MDNode *& Node, StringRef Src, SMDiagnostic & Error)

    Defined at line 3700 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • void initializeX86DomainReassignmentPass (PassRegistry & )

    Defined at line 833 of file llvm/lib/Target/X86/X86DomainReassignment.cpp

  • Value * simplifyConstrainedFPCall (CallBase * Call, const SimplifyQuery & Q)

    Given a constrained FP intrinsic call, tries to compute its simplified

    version. Returns a simplified result or null.

    This function provides an additional contract: it guarantees that if

    simplification succeeds that the intrinsic is side effect free. As a result,

    successful simplification can be used to delete the intrinsic not just

    replace its result.

    Defined at line 7365 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool parseMachineMetadata (PerFunctionMIParsingState & PFS, StringRef Src, SMRange SourceRange, SMDiagnostic & Error)

    Defined at line 3705 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • void CloneAndPruneFunctionInto (Function * NewFunc, const Function * OldFunc, ValueToValueMapTy & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)

    This works exactly like CloneFunctionInto,

    except that it does some simple constant prop and DCE on the fly. The

    effect of this is to copy significantly less code in cases where (for

    example) a function call with constant arguments is inlined, and those

    constant arguments cause a significant amount of code in the callee to be

    dead. Since this doesn't produce an exact copy of the input, it can't be

    used for things like CloneFunction or CloneModule.

    Defined at line 982 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • KnownFPClass computeKnownFPClass (const Value * V, const APInt & DemandedElts, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)

    is a compile time optimization hint for which floating

    point classes should be queried. Queries not specified in

    should be reliable if they are determined during the

    query.

    Defined at line 6183 of file llvm/lib/Analysis/ValueTracking.cpp

  • Align getOrEnforceKnownAlignment (Value * V, MaybeAlign PrefAlign, const DataLayout & DL, const Instruction * CxtI, AssumptionCache * AC, const DominatorTree * DT)

    Try to ensure that the alignment of

    is at least

    bytes. If

    the owning object can be modified and has an alignment less than

    it will be increased and

    returned. If the alignment

    cannot be increased, the known alignment of the value is returned.

    It is not always possible to modify the alignment of the underlying object,

    so if alignment is important, a more reliable approach is to simply align

    all global variables and allocation instructions to their preferred

    alignment from the beginning.

    Defined at line 1566 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool hasWholeProgramVisibility (bool WholeProgramVisibilityEnabledInLTO)

    Enable whole program visibility if enabled by client (e.g. linker) or

    internal option, and not force disabled.

    Defined at line 829 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • Value * emitBinaryFloatFnCall (Value * Op1, Value * Op2, const TargetLibraryInfo * TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilderBase & B, const AttributeList & Attrs)

    Emit a call to the binary function DoubleFn, FloatFn or LongDoubleFn,

    depending of the type of Op1.

    Defined at line 1967 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • InlineParams getInlineParams ()

    Generate the parameters to tune the inline cost analysis based only on the

    commandline options.

    Defined at line 3428 of file llvm/lib/Analysis/InlineCost.cpp

  • void updatePublicTypeTestCalls (Module & M, bool WholeProgramVisibilityEnabledInLTO)

    Defined at line 901 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • Value * simplifyFreezeInst (Value * Op, const SimplifyQuery & Q)

    Given an operand for a Freeze, see if we can fold the result.

    If not, this returns null.

    Defined at line 7384 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • KnownFPClass computeKnownFPClass (const Value * V, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)

    Defined at line 6194 of file llvm/lib/Analysis/ValueTracking.cpp

  • void updateVCallVisibilityInModule (Module & M, bool WholeProgramVisibilityEnabledInLTO, const int & DynamicExportSymbols, bool ValidateAllVtablesHaveTypeInfos, function_ref<bool (StringRef)> IsVisibleToRegularObj)

    If whole program visibility asserted, then upgrade all public vcall

    visibility metadata on vtable definitions to linkage unit visibility in

    Module IR (for regular or hybrid LTO).

    Defined at line 875 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • void updateVCallVisibilityInModule (Module & M, bool WholeProgramVisibilityEnabledInLTO, const DenseSet<GlobalValue::GUID> & DynamicExportSymbols, bool ValidateAllVtablesHaveTypeInfos, function_ref<bool (StringRef)> IsVisibleToRegularObj)

    Defined at line of file

  • void initializeX86LoadValueInjectionLoadHardeningPassPass (PassRegistry & )

    Defined at line 800 of file llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp

  • InlineParams getInlineParams (int Threshold)

    APIs to create InlineParams based on command line flags and/or other

    parameters.

    Defined at line 3375 of file llvm/lib/Analysis/InlineCost.cpp

  • FunctionPass * createDefaultPBQPRegisterAllocator ()

    PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean

    Quadratic Prograaming (PBQP) based register allocator.

    Defined at line 953 of file llvm/lib/CodeGen/RegAllocPBQP.cpp

  • Value * simplifyLoadInst (LoadInst * LI, Value * PtrOp, const SimplifyQuery & Q)

    Given a load instruction and its pointer operand, fold the result or return

    null.

    Defined at line 7388 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * emitPutChar (Value * Char, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to putchar(int) with Char as the argument. Char must have

    the same precision as int, which need not be 32 bits.

    Defined at line 1983 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void initializeX86LowerAMXTypeLegacyPassPass (PassRegistry & )

    Defined at line 1364 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • void updateVCallVisibilityInIndex (ModuleSummaryIndex & Index, bool WholeProgramVisibilityEnabledInLTO, const DenseSet<GlobalValue::GUID> & DynamicExportSymbols, const DenseSet<GlobalValue::GUID> & VisibleToRegularObjSymbols)

    Defined at line of file

  • void updateVCallVisibilityInIndex (ModuleSummaryIndex & Index, bool WholeProgramVisibilityEnabledInLTO, const int & DynamicExportSymbols, const int & VisibleToRegularObjSymbols)

    If whole program visibility asserted, then upgrade all public vcall

    visibility metadata on vtable definition summaries to linkage unit

    visibility in Module summary index (for ThinLTO).

    Defined at line 947 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • KnownFPClass computeKnownFPClass (const Value * V, const DataLayout & DL, FPClassTest InterestedClasses, const TargetLibraryInfo * TLI, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)

    Defined at line 6203 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * emitPutS (Value * Str, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the puts function. This assumes that Str is some pointer.

    Defined at line 2002 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Value * simplifyInstruction (Instruction * I, const SimplifyQuery & Q)

    See if we can compute a simplified version of this instruction. If not,

    return null.

    Defined at line 7568 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • unsigned int SplitAllCriticalEdges (Function & F, const CriticalEdgeSplittingOptions & Options)

    Loop over all of the edges in the CFG, breaking critical edges as they are

    found. Returns the number of broken edges.

    Defined at line 982 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void initializePostRAMachineSinkingLegacyPass (PassRegistry & )

    Defined at line 2114 of file llvm/lib/CodeGen/MachineSink.cpp

  • void getVisibleToRegularObjVtableGUIDs (ModuleSummaryIndex & Index, int & VisibleToRegularObjSymbols, function_ref<bool (StringRef)> IsVisibleToRegularObj)

    Based on typeID string, get all associated vtable GUIDS that are

    visible to regular objects.

    Defined at line 933 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • InlineParams getInlineParams (unsigned int OptLevel, unsigned int SizeOptLevel)

    Generate the parameters to tune the inline cost analysis based on command

    line options. If -inline-threshold option is not explicitly passed,

    the default threshold is computed from

    and

    An

    value above 3 is considered an aggressive optimization mode.

    of 1 corresponds to the -Os flag and 2 corresponds to

    the -Oz flag.

    Defined at line 3445 of file llvm/lib/Analysis/InlineCost.cpp

  • void initializePreISelIntrinsicLoweringLegacyPassPass (PassRegistry & )

    Defined at line 808 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • void initializeX86SpeculativeLoadHardeningPassPass (PassRegistry & )

    Defined at line 2262 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • Value * emitFPutC (Value * Char, Value * File, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the fputc function. This assumes that Char is an 'int', and

    File is a pointer to FILE.

    Defined at line 2020 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Value * simplifyInstructionWithOperands (Instruction * I, ArrayRef NewOps, const SimplifyQuery & Q)

    Like

    but the operands of

    are replaced with

    Returns a simplified value, or null if none was found.

    Defined at line 7560 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • CallInst * createCallMatchingInvoke (InvokeInst * II)

    Create a call that matches the invoke

    in terms of arguments,

    attributes, debug information, etc. The call is not placed in a block and it

    will not have a name. The invoke instruction is not removed, nor are the

    uses replaced by the new call.

    Defined at line 2553 of file llvm/lib/Transforms/Utils/Local.cpp

  • KnownFPClass computeKnownFPClass (const Value * V, const APInt & DemandedElts, FastMathFlags FMF, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)

    Wrapper to account for known fast math flags at the use instruction.

    Defined at line 6212 of file llvm/lib/Analysis/ValueTracking.cpp

  • int getCallsiteCost (const TargetTransformInfo & TTI, const CallBase & Call, const DataLayout & DL)

    Return the cost associated with a callsite, including parameter passing

    and the call/return instruction.

    Defined at line 3098 of file llvm/lib/Analysis/InlineCost.cpp

  • CallInst * changeToCall (InvokeInst * II, DomTreeUpdater * DTU)

    This function converts the specified invoke into a normal call.

    Defined at line 2579 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * emitFPutS (Value * Str, Value * File, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Emit a call to the fputs function. Str is required to be a pointer and

    File is a pointer to FILE.

    Defined at line 2040 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • KnownFPClass computeKnownFPClass (const Value * V, FastMathFlags FMF, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)

    Defined at line 6231 of file llvm/lib/Analysis/ValueTracking.cpp

  • RegAllocEvictionAdvisorAnalysisLegacy * createReleaseModeAdvisorAnalysisLegacy ()

    Defined at line 1037 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

  • void initializeReassociateLegacyPassPass (PassRegistry & )

    Defined at line 2660 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • void runWholeProgramDevirtOnIndex (ModuleSummaryIndex & Summary, std::set<GlobalValue::GUID> & ExportedGUIDs, std::map<ValueInfo, std::vector<VTableSlotSummary>> & LocalWPDTargetsMap)

    Perform index-based whole program devirtualization on the

    index. Any devirtualized targets used by a type test in another module

    are added to the

    set. For any local devirtualized targets

    only used within the defining module, the information necessary for

    locating the corresponding WPD resolution is recorded for the ValueInfo

    in case it is exported by cross module importing (in which case the

    devirtualized target name will need adjustment).

    Defined at line of file

  • void runWholeProgramDevirtOnIndex (ModuleSummaryIndex & Summary, int & ExportedGUIDs, int & LocalWPDTargetsMap)

    Perform index-based whole program devirtualization on the

    index. Any devirtualized targets used by a type test in another module

    are added to the

    set. For any local devirtualized targets

    only used within the defining module, the information necessary for

    locating the corresponding WPD resolution is recorded for the ValueInfo

    in case it is exported by cross module importing (in which case the

    devirtualized target name will need adjustment).

    Defined at line 974 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • Value * emitFWrite (Value * Ptr, Value * Size, Value * File, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the fwrite function. This assumes that Ptr is a pointer,

    Size is an 'size_t', and File is a pointer to FILE.

    Defined at line 2060 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • RegAllocEvictionAdvisorProvider * createReleaseModeAdvisorProvider (LLVMContext & Ctx)

    Defined at line 1024 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

  • void InsertDebugValueAtStoreLoc (DbgVariableRecord * DVR, StoreInst * SI, DIBuilder & Builder)

    Creates and inserts a dbg_value record intrinsic before a store

    that has an associated llvm.dbg.value intrinsic.

    Defined at line 1708 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool cannotBeNegativeZero (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if we can prove that the specified FP value is never equal to

    -0.0. Users should use caution when considering PreserveSign

    denormal-fp-math.

    Defined at line 6242 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * simplifyWithOpReplaced (Value * V, Value * Op, Value * RepOp, const SimplifyQuery & Q, bool AllowRefinement, SmallVectorImpl<Instruction *> * DropFlags)

    See if V simplifies when its operand Op is replaced with RepOp. If not,

    return null.

    AllowRefinement specifies whether the simplification can be a refinement

    (e.g. 0 instead of poison), or whether it needs to be strictly identical.

    Op and RepOp can be assumed to not be poison when determining refinement.

    If DropFlags is passed, then the replacement result is only valid if

    poison-generating flags/metadata on those instructions are dropped. This

    is only useful in conjunction with AllowRefinement=false.

    Defined at line 4532 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • RegAllocEvictionAdvisorProvider * createDevelopmentModeAdvisorProvider (LLVMContext & Ctx)

    Defined at line 1029 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

  • Value * emitMalloc (Value * Num, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Emit a call to the malloc function.

    Defined at line 2084 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void updateIndexWPDForExports (ModuleSummaryIndex & Summary, function_ref<bool (StringRef, ValueInfo)> isExported, int & LocalWPDTargetsMap)

    Call after cross-module importing to update the recorded single impl

    devirt target names for any locals that were exported.

    Defined at line 980 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • void updateIndexWPDForExports (ModuleSummaryIndex & Summary, function_ref<bool (StringRef, ValueInfo)> isExported, std::map<ValueInfo, std::vector<VTableSlotSummary>> & LocalWPDTargetsMap)

    Call after cross-module importing to update the recorded single impl

    devirt target names for any locals that were exported.

    Defined at line of file

  • void ConvertDebugDeclareToDebugValue (DbgVariableRecord * DVR, StoreInst * SI, DIBuilder & Builder)

    Inserts a dbg.value record before a store to an alloca'd value

    that has an associated dbg.declare record.

    Defined at line 1662 of file llvm/lib/Transforms/Utils/Local.cpp

  • InlineCost getInlineCost (CallBase & Call, const InlineParams & Params, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE, function_ref<EphemeralValuesCache &(Function &)> GetEphValuesCache)

    Get an InlineCost object representing the cost of inlining this

    callsite.

    Note that a default threshold is passed into this function. This threshold

    could be modified based on callsite's properties and only costs below this

    new threshold are computed with any accuracy. The new threshold can be

    used to bound the computation necessary to determine whether the cost is

    sufficiently low to warrant inlining.

    Also note that calling this function *dynamically* computes the cost of

    inlining the callsite. It is an expensive, heavyweight call.

    Defined at line 3134 of file llvm/lib/Analysis/InlineCost.cpp

  • Value * emitCalloc (Value * Num, Value * Size, IRBuilderBase & B, const TargetLibraryInfo & TLI, unsigned int AddrSpace)

    Emit a call to the calloc function.

    Defined at line 2104 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void ConvertDebugDeclareToDebugValue (DbgVariableRecord * DVR, LoadInst * LI, DIBuilder & Builder)

    Inserts a dbg.value record before a load of an alloca'd value

    that has an associated dbg.declare record.

    Defined at line 1722 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * emitHotColdNew (Value * Num, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)

    Emit a call to the hot/cold operator new function.

    Defined at line 2174 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool cannotBeOrderedLessThanZero (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if we can prove that the specified FP value is either NaN or

    never less than -0.0.

    NaN --> true

    +0 --> true

    -0 --> true

    x > +0 --> true

    x

    <

    -0 --> false

    Defined at line 6248 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * emitHotColdNewNoThrow (Value * Num, Value * NoThrow, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)

    Defined at line 2194 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool replaceAndRecursivelySimplify (Instruction * I, Value * SimpleV, const TargetLibraryInfo * TLI, const DominatorTree * DT, AssumptionCache * AC, SmallSetVector<Instruction *, 8> * UnsimplifiedUsers)

    Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.

    This first performs a normal RAUW of I with SimpleV. It then recursively

    attempts to simplify those users updated by the operation. The 'I'

    instruction must not be equal to the simplified value 'SimpleV'.

    If UnsimplifiedUsers is provided, instructions that could not be simplified

    are added to it.

    The function returns true if any simplifications were performed.

    Defined at line 7644 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void ConvertDebugDeclareToDebugValue (DbgVariableRecord * DVR, PHINode * LI, DIBuilder & Builder)

    Inserts a dbg.value record after a phi that has an associated

    llvm.dbg.declare record.

    Defined at line 1761 of file llvm/lib/Transforms/Utils/Local.cpp

  • void jitLinkForORC (object::OwningBinary<object::ObjectFile> O, RuntimeDyld::MemoryManager & MemMgr, JITSymbolResolver & Resolver, bool ProcessAllSections, unique_function<Error (const object::ObjectFile &, LoadedObjectInfo &, std::map<StringRef, JITEvaluatedSymbol>)> OnLoaded, unique_function<void (object::OwningBinary<object::ObjectFile>, std::unique_ptr<LoadedObjectInfo>, Error)> OnEmitted)

    Asynchronous JIT link for ORC.

    Warning: This API is experimental and probably should not be used by anyone

    but ORC's RTDyldObjectLinkingLayer2. Internally it constructs a RuntimeDyld

    instance and uses continuation passing to perform the fix-up and finalize

    steps asynchronously.

    Defined at line 1458 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp

  • Value * emitHotColdNewAligned (Value * Num, Value * Align, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)

    Defined at line 2214 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool isKnownNeverInfinity (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if the floating-point scalar value is not an infinity or if

    the floating-point vector value has no infinities. Return false if a value

    could ever be infinity.

    Defined at line 6255 of file llvm/lib/Analysis/ValueTracking.cpp

  • InlineCost getInlineCost (CallBase & Call, Function * Callee, const InlineParams & Params, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE, function_ref<EphemeralValuesCache &(Function &)> GetEphValuesCache)

    Get an InlineCost with the callee explicitly specified.

    This allows you to calculate the cost of inlining a function via a

    pointer. This behaves exactly as the version with no explicit callee

    parameter in all other respects.

    Defined at line 3261 of file llvm/lib/Analysis/InlineCost.cpp

  • bool LowerDbgDeclare (Function & F)

    LowerDbgDeclare - Lowers llvm.dbg.declare intrinsics into appropriate set

    of llvm.dbg.value intrinsics.

    Defined at line 1795 of file llvm/lib/Transforms/Utils/Local.cpp

  • void getSelectionDAGFallbackAnalysisUsage (AnalysisUsage & AU)

    Modify analysis usage so it preserves passes required for the SelectionDAG

    fallback.

    Defined at line 1191 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void initializeSROALegacyPassPass (PassRegistry & )

    Defined at line 6243 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • Value * emitHotColdNewAlignedNoThrow (Value * Num, Value * Align, Value * NoThrow, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)

    Defined at line 2234 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • SimplifyQuery getBestSimplifyQuery (Pass & , Function & )

    These helper functions return a SimplifyQuery structure that contains as

    many of the optional analysis we use as are currently valid. This is the

    strongly preferred way of constructing SimplifyQuery in passes.

    Defined at line 7655 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeSafeStackLegacyPassPass (PassRegistry & )

    Defined at line 987 of file llvm/lib/CodeGen/SafeStack.cpp

  • bool isKnownNeverInfOrNaN (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if the floating-point value can never contain a NaN or infinity.

    Defined at line 6262 of file llvm/lib/Analysis/ValueTracking.cpp

  • void insertDebugValuesForPHIs (BasicBlock * BB, SmallVectorImpl<PHINode *> & InsertedPHIs)

    Propagate dbg.value intrinsics through the newly inserted PHIs.

    Defined at line 1879 of file llvm/lib/Transforms/Utils/Local.cpp

  • Error collectVTableStrings (ArrayRef<GlobalVariable *> VTables, std::string & Result, bool doCompression)

    Defined at line 769 of file llvm/lib/ProfileData/InstrProf.cpp

  • template <class T, class... TArgs>
    SimplifyQuery getBestSimplifyQuery (AnalysisManager<T, TArgs...> & , Function & )

    Defined at line 7671 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeScalarEvolutionWrapperPassPass (PassRegistry & )

    Defined at line 14817 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SimplifyQuery getBestSimplifyQuery (LoopStandardAnalysisResults & , const DataLayout & )

    Defined at line 7665 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * emitHotColdSizeReturningNew (Value * Num, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)

    Defined at line 2124 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void RemapSourceAtom (Instruction * I, ValueToValueMapTy & VM)

    Remap source location atom. Called by RemapInstruction. This updates the

    instruction's atom group number if it has been mapped (e.g. with

    llvm::mapAtomInstance), which is necessary to distinguish source code

    atoms on duplicated code paths.

    Defined at line 1314 of file llvm/lib/Transforms/Utils/ValueMapper.cpp

  • bool isIRPGOFlagSet (const Module * M)

    Check if INSTR_PROF_RAW_VERSION_VAR is defined.

    Defined at line 1494 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool isKnownNeverNaN (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Return true if the floating-point scalar value is not a NaN or if the

    floating-point vector value has no NaN elements. Return false if a value

    could ever be NaN.

    Defined at line 6271 of file llvm/lib/Analysis/ValueTracking.cpp

  • void updatePhiNodes (BasicBlock * DestBB, BasicBlock * OldPred, BasicBlock * NewPred, PHINode * Until)

    Replaces all uses of OldPred with the NewPred block in all PHINodes in a

    block.

    Defined at line 779 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • InlineResult CanInlineCallSite (const CallBase & CB, InlineFunctionInfo & IFI)

    Check if it is legal to perform inlining of the function called by

    into the caller at this particular use, and sets fields in

    This does not consider whether it is possible for the function callee itself

    to be inlined; for that see isInlineViable.

    Defined at line 2457 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • Value * emitHotColdSizeReturningNewAligned (Value * Num, Value * Align, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)

    Defined at line 2148 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool replaceDbgDeclare (Value * Address, Value * NewAddress, DIBuilder & Builder, uint8_t DIExprFlags, int Offset)

    Replaces dbg.declare record when the address it

    describes is replaced with a new value. If Deref is true, an

    additional DW_OP_deref is prepended to the expression. If Offset

    is non-zero, a constant displacement is added to the expression

    (between the optional Deref operations). Offset can be negative.

    Defined at line 1942 of file llvm/lib/Transforms/Utils/Local.cpp

  • int ConstantFoldVectorBinop (unsigned int Opcode, Register Op1, Register Op2, const MachineRegisterInfo & MRI)

    Tries to constant fold a vector binop with sources

    and

    Returns an empty vector on failure.

    Defined at line 799 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool canRenameComdatFunc (const Function & F, bool CheckAddressTaken)

    Check if we can safely rename this Comdat function.

    Defined at line 1516 of file llvm/lib/ProfileData/InstrProf.cpp

  • BasicBlock * ehAwareSplitEdge (BasicBlock * BB, BasicBlock * Succ, LandingPadInst * OriginalPad, PHINode * LandingPadReplacement, const CriticalEdgeSplittingOptions & Options, const Twine & BBName)

    Split the edge connect the specficed blocks in the case that

    is an

    Exception Handling Block

    Defined at line 801 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • std::optional<InlineResult> getAttributeBasedInliningDecision (CallBase & Call, Function * Callee, TargetTransformInfo & CalleeTTI, function_ref<const TargetLibraryInfo &(Function &)> GetTLI)

    Returns InlineResult::success() if the call site should be always inlined

    because of user directives, and the inlining is viable. Returns

    InlineResult::failure() if the inlining may never happen because of user

    directives or incompatibilities detectable without needing callee traversal.

    Otherwise returns std::nullopt, meaning that inlining should be decided

    based on other criteria (e.g. cost modeling).

    Defined at line 3186 of file llvm/lib/Analysis/InlineCost.cpp

  • optional computeKnownFPSignBit (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)

    Return false if we can prove that the specified FP value's sign bit is 0.

    Return true if we can prove that the specified FP value's sign bit is 1.

    Otherwise return std::nullopt.

    Defined at line 6280 of file llvm/lib/Analysis/ValueTracking.cpp

  • APInt readWideAPInt (ArrayRef Vals, unsigned int TypeBits)

    Defined at line 3228 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • std::optional<APInt> ConstantFoldCastOp (unsigned int Opcode, LLT DstTy, Register Op0, const MachineRegisterInfo & MRI)

    Defined at line 972 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • const std::error_category & BitcodeErrorCategory ()

    Defined at line 8349 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void getHorizDemandedEltsForFirstOperand (unsigned int VectorBitWidth, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS)

    Compute the demanded elements mask of horizontal binary operations. A

    horizontal operation combines two adjacent elements in a vector operand.

    This function returns a mask for the elements that correspond to the first

    operand of this horizontal combination. For example, for two vectors

    [X1, X2, X3, X4] and [Y1, Y2, Y3, Y4], the resulting mask can include the

    elements X1, X3, Y1, and Y3. To get the other operands, simply shift the

    result of this function to the left by 1.

    Parameters

    VectorBitWidth the total bit width of the vector
    DemandedElts the demanded elements mask for the operation
    DemandedLHS the demanded elements mask for the left operand
    DemandedRHS the demanded elements mask for the right operand

    Defined at line 780 of file llvm/lib/Analysis/VectorUtils.cpp

  • bool canIgnoreSignBitOfZero (const Use & U)

    Return true if the sign bit of the FP value can be ignored by the user when

    the value is zero.

    Defined at line 6287 of file llvm/lib/Analysis/ValueTracking.cpp

  • void replaceDbgValueForAlloca (AllocaInst * AI, Value * NewAllocaAddress, DIBuilder & Builder, int Offset)

    Replaces multiple dbg.value records when the alloca it describes

    is replaced with a new value. If Offset is non-zero, a constant displacement

    is added to the expression (after the mandatory Deref). Offset can be

    negative. New dbg.value records are inserted at the locations of

    the instructions they replace.

    Defined at line 1982 of file llvm/lib/Transforms/Utils/Local.cpp

  • std::optional<APInt> ConstantFoldExtOp (unsigned int Opcode, Register Op1, uint64_t Imm, const MachineRegisterInfo & MRI)

    Defined at line 955 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void InlineFunctionImpl (CallBase & CB, InlineFunctionInfo & IFI, bool MergeAttributes, AAResults * CalleeAAR, bool InsertLifetime, Function * ForwardVarArgsTo, OptimizationRemarkEmitter * ORE)

    This function inlines the called function into the basic block of the

    caller. This returns false if it is not possible to inline this call.

    The program is still in a well defined state if this occurs though.

    Note that this only does one level of inlining. For example, if the

    instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now

    exists in the instruction stream. Similarly this will inline a recursive

    function by one level.

    Defined at line 2596 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool canIgnoreSignBitOfNaN (const Use & U)

    Return true if the sign bit of the FP value can be ignored by the user when

    the value is NaN.

    Defined at line 6326 of file llvm/lib/Analysis/ValueTracking.cpp

  • void annotateValueSite (Module & M, Instruction & Inst, const InstrProfRecord & InstrProfR, InstrProfValueKind ValueKind, uint32_t SiteIndx, uint32_t MaxMDCount)

    Get the value profile data for value site

    from

    and annotate the instruction

    with the value profile meta data.

    Annotate up to

    (default 3) number of records per value site.

    Defined at line 1334 of file llvm/lib/ProfileData/InstrProf.cpp

  • void initializeStackSafetyGlobalInfoWrapperPassPass (PassRegistry & )

    Defined at line 1219 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp

  • std::optional<APFloat> ConstantFoldIntToFloat (unsigned int Opcode, LLT DstTy, Register Src, const MachineRegisterInfo & MRI)

    Defined at line 995 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void initializeStackSafetyInfoWrapperPassPass (PassRegistry & )

    Defined at line 1211 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp

  • void salvageDebugInfo (Instruction & I)

    Assuming the instruction

    is going to be deleted, attempt to salvage

    debug users of

    by writing the effect of

    in a DIExpression. If it

    cannot be salvaged changes its debug uses to undef.

    Defined at line 1996 of file llvm/lib/Transforms/Utils/Local.cpp

  • std::optional<int> getInliningCostEstimate (CallBase & Call, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE)

    Get the cost estimate ignoring thresholds. This is similar to getInlineCost

    when passed InlineParams::ComputeFullInlineCost, or a non-null ORE. It

    uses default InlineParams otherwise.

    Contrary to getInlineCost, which makes a threshold-based final evaluation of

    should/shouldn't inline, captured in InlineResult, getInliningCostEstimate

    returns:

    - std::nullopt, if the inlining cannot happen (is illegal)

    - an integer, representing the cost.

    Defined at line 3146 of file llvm/lib/Analysis/InlineCost.cpp

  • FunctionPass * createIfConverter (std::function<bool (const MachineFunction &)> Ftor)

    Defined at line 2371 of file llvm/lib/CodeGen/IfConversion.cpp

  • void salvageDebugInfoForDbgValues (Instruction & I, ArrayRef<DbgVariableRecord *> DPInsns)

    Implementation of salvageDebugInfo, applying only to instructions in

    rather than all debug users from findDbgUsers(

    Mark undef if salvaging cannot be completed.

    Defined at line 2037 of file llvm/lib/Transforms/Utils/Local.cpp

  • BasicBlock * SplitBlock (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Split the specified block at the specified instruction.

    If

    is true, splitBlockBefore handles the block

    splitting. Otherwise, execution proceeds as described below.

    Everything before

    stays in

    and everything starting with

    moves to a new block. The two blocks are joined by an unconditional

    branch. The new block with name

    is returned.

    FIXME: deprecated, switch to the DomTreeUpdater-based one.

    Defined at line 1052 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Value * isBytewiseValue (Value * V, const DataLayout & DL)

    If the specified value can be set by repeating the same byte in memory,

    return the i8 value that it is represented with. This is true for all i8

    values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double

    0.0 etc. If the value can't be handled with a repeated byte store (e.g.

    i16 0x1234), return null. If the value is entirely undef and padding,

    return undef.

    Defined at line 6395 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeTailCallElimPass (PassRegistry & )

    Defined at line 977 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • int ConstantFoldCountZeros (Register Src, const MachineRegisterInfo & MRI, std::function<unsigned int (APInt)> CB)

    Tries to constant fold a counting-zero operation (G_CTLZ or G_CTTZ) on

    If

    is a vector then it tries to do an element-wise constant

    fold.

    Defined at line 1008 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void annotateValueSite (Module & M, Instruction & Inst, ArrayRef<InstrProfValueData> VDs, uint64_t Sum, InstrProfValueKind ValueKind, uint32_t MaxMDCount)

    Same as the above interface but using an ArrayRef, as well as

    This function will not annotate !prof metadata on the instruction if the

    referenced array is empty.

    Defined at line 1347 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool isAssignmentTrackingEnabled (const Module & M)

    Return true if assignment tracking is enabled for module

    Defined at line 2336 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeTargetLibraryInfoWrapperPassPass (PassRegistry & )

    Register the basic pass.

    Defined at line 1488 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, BBState & BBState)

    Defined at line 430 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • void initializeTargetPassConfigPass (PassRegistry & )

    ===---------------------------------------------------------------------===//

    TargetPassConfig

    ===---------------------------------------------------------------------===//

    Defined at line 384 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • void initializeTargetTransformInfoWrapperPassPass (PassRegistry & )

    Register the basic pass.

    Defined at line 1523 of file llvm/lib/Analysis/TargetTransformInfo.cpp

  • int ConstantFoldICmp (unsigned int Pred, Register Op1, Register Op2, unsigned int DstScalarSizeInBits, unsigned int ExtOp, const MachineRegisterInfo & MRI)

    Defined at line 1040 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • std::optional<InlineCostFeatures> getInliningCostFeatures (CallBase & Call, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE)

    Get the expanded cost features. The features are returned unconditionally,

    even if inlining is impossible.

    Defined at line 3172 of file llvm/lib/Analysis/InlineCost.cpp

  • void initializeTwoAddressInstructionLegacyPassPass (PassRegistry & )

    Defined at line 263 of file llvm/lib/CodeGen/TwoAddressInstructionPass.cpp

  • void initializeTypeBasedAAWrapperPassPass (PassRegistry & )

    Defined at line 743 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • void gcovOneInput (const GCOV::Options & options, StringRef filename, StringRef gcno, StringRef gcda, GCOVFile & file)

    Defined at line 999 of file llvm/lib/ProfileData/GCOV.cpp

  • void initializeTypePromotionLegacyPass (PassRegistry & )

    Defined at line 1028 of file llvm/lib/CodeGen/TypePromotion.cpp

  • void initializeInitUndefLegacyPass (PassRegistry & )

    Defined at line 104 of file llvm/lib/CodeGen/InitUndef.cpp

  • Value * FindInsertedValue (Value * V, ArrayRef<unsigned int> idx_range, int InsertBefore)

    Given an aggregate and an sequence of indices, see if the scalar value

    indexed is already around as a register, for example if it were inserted

    directly into the aggregate.

    If InsertBefore is not empty, this function will duplicate (modified)

    insertvalues when a part of a nested struct is extracted.

    Defined at line of file

  • Value * FindInsertedValue (Value * V, ArrayRef idx_range, optional InsertBefore)

    Given an aggregate and a sequence of indices, see if the scalar value

    indexed is already around as a register, for example if it was inserted

    directly into the aggregate.

    If InsertBefore is not null, this function will duplicate (modified)

    insertvalues when a part of a nested struct is extracted.

    Defined at line 6577 of file llvm/lib/Analysis/ValueTracking.cpp

  • void initializeUniformityInfoWrapperPassPass (PassRegistry & )

    Defined at line 160 of file llvm/lib/Analysis/UniformityAnalysis.cpp

  • bool convertUTF32ToUTF8String (ArrayRef<UTF32> Src, std::string & Out)

    Converts a UTF32 string into a UTF8 std::string.

    Parameters

    Src [in] A buffer of UTF-32 encoded text.
    Out [out] Converted UTF-8 is stored here on success.

    Defined at line 192 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • SmallVector<InstrProfValueData, 4> getValueProfDataFromInst (const Instruction & Inst, InstrProfValueKind ValueKind, uint32_t MaxNumValueData, uint64_t & TotalC, bool GetNoICPValue)

    TODO: Unify metadata name 'PGOFuncName' and 'PGOName', by supporting read

    of this metadata for backward compatibility and generating 'PGOName' only.

    Extract the value profile data from

    and returns them if

    is

    annotated with value profile data. Returns an empty vector otherwise.

    Defined at line 1401 of file llvm/lib/ProfileData/InstrProf.cpp

  • void initializeUnifyLoopExitsLegacyPassPass (PassRegistry & )

    Defined at line 73 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp

  • FunctionPass * createGCLoweringPass ()

    -----------------------------------------------------------------------------

    Defined at line 105 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • void initializeUnpackMachineBundlesPass (PassRegistry & )

    Defined at line 44 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • void initializeUnreachableBlockElimLegacyPassPass (PassRegistry & )

    Defined at line 59 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp

  • bool isKnownToBeAPowerOfTwo (Register Val, const MachineRegisterInfo & MRI, GISelValueTracking * ValueTracking)

    Test if the given value is known to have exactly one bit set. This differs

    from computeKnownBits in that it doesn't necessarily determine which bit is

    set.

    Defined at line 1119 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void initializeUnreachableMachineBlockElimLegacyPass (PassRegistry & )

    Defined at line 102 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp

  • void initializeVerifierLegacyPassPass (PassRegistry & )

    Defined at line 8135 of file llvm/lib/IR/Verifier.cpp

  • void initializeVirtRegMapWrapperLegacyPass (PassRegistry & )

    Defined at line 62 of file llvm/lib/CodeGen/VirtRegMap.cpp

  • MCAsmParser * createMCAsmParser (SourceMgr & , MCContext & , MCStreamer & , const MCAsmInfo & , unsigned int CB)

    Create an MCAsmParser instance for parsing assembly similar to gas syntax

    Defined at line 6308 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • void initializeVirtRegRewriterLegacyPass (PassRegistry & )

    Defined at line 268 of file llvm/lib/CodeGen/VirtRegMap.cpp

  • bool convertUTF8ToUTF16String (StringRef SrcUTF8, SmallVectorImpl<UTF16> & DstUTF16)

    Converts a UTF-8 string into a UTF-16 string with native endianness.

    Defined at line 199 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • InlineResult isInlineViable (Function & Callee)

    Check if it is mechanically possible to inline the function

    based

    on the contents of the function.

    See also

    as an additional precondition necessary to

    perform a valid inline in a particular use context.

    Defined at line 3316 of file llvm/lib/Analysis/InlineCost.cpp

  • void initializeWasmEHPreparePass (PassRegistry & )

    Defined at line 159 of file llvm/lib/CodeGen/WasmEHPrepare.cpp

  • void initializeWindowsSecureHotPatchingPass (PassRegistry & )

    Defined at line 201 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • bool isKnownNeverNaN (Register Val, const MachineRegisterInfo & MRI, bool SNaN)

    Returns true if

    can be assumed to never be a NaN. If

    is true,

    this returns if

    can be assumed to never be a signaling NaN.

    Defined at line 822 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • BasicBlock * SplitBlock (BasicBlock * Old, int SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Split the specified block at the specified instruction.

    If

    is true, splitBlockBefore handles the block

    splitting. Otherwise, execution proceeds as described below.

    Everything before

    stays in

    and everything starting with

    moves to a new block. The two blocks are joined by an unconditional

    branch. The new block with name

    is returned.

    Defined at line of file

  • BasicBlock * SplitBlock (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Split the specified block at the specified instruction.

    If

    is true, splitBlockBefore handles the block

    splitting. Otherwise, execution proceeds as described below.

    Everything before

    stays in

    and everything starting with

    moves to a new block. The two blocks are joined by an unconditional

    branch. The new block with name

    is returned.

    Defined at line 1059 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • InlineResult InlineFunction (CallBase & CB, InlineFunctionInfo & IFI, bool MergeAttributes, AAResults * CalleeAAR, bool InsertLifetime, Function * ForwardVarArgsTo, OptimizationRemarkEmitter * ORE)

    This function inlines the called function into the basic

    block of the caller. This returns false if it is not possible to inline

    this call. The program is still in a well defined state if this occurs

    though.

    Note that this only does one level of inlining. For example, if the

    instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now

    exists in the instruction stream. Similarly this will inline a recursive

    function by one level.

    Note that while this routine is allowed to cleanup and optimize the

    *inlined* code to minimize the actual inserted code, it must not delete

    code in the caller as users of this routine may have pointers to

    instructions in the caller that need to remain stable.

    If ForwardVarArgsTo is passed, inlining a function with varargs is allowed

    and all varargs at the callsite will be passed to any calls to

    ForwardVarArgsTo. The caller of InlineFunction has to make sure any varargs

    are only used by ForwardVarArgsTo.

    The callee's function attributes are merged into the callers' if

    MergeAttributes is set to true.

    Defined at line 3413 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void initializeWinEHPreparePass (PassRegistry & )

    Defined at line 124 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • MDNode * getPGOFuncNameMetadata (const Function & F)

    Return the PGOFuncName meta data associated with a function.

    Defined at line 1440 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool IsSingleCodeUnitUTF8Codepoint (unsigned int )

    Defined at line 306 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • bool isSpecialPass (StringRef PassID, const int & Specials)

    Defined at line of file

  • bool isSpecialPass (StringRef PassID, const std::vector<StringRef> & Specials)

    Defined at line 45 of file llvm/lib/IR/PassInstrumentation.cpp

  • MCAsmParser * createMCMasmParser (SourceMgr & , MCContext & , MCStreamer & , const MCAsmInfo & , tm , unsigned int CB)

    Create an MCAsmParser instance for parsing Microsoft MASM-style assembly

    Defined at line 6265 of file llvm/lib/MC/MCParser/MasmParser.cpp

  • FunctionPass * createShadowStackGCLoweringPass ()

    ShadowStackGCLowering - Implements the custom lowering mechanism

    used by the shadow stack GC. Only runs on functions which opt in to

    the shadow stack collector.

    Defined at line 142 of file llvm/lib/CodeGen/ShadowStackGCLowering.cpp

  • void initializeWriteBitcodePassPass (PassRegistry & )

    Defined at line 69 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

  • bool IsSingleCodeUnitUTF16Codepoint (unsigned int )

    Defined at line 308 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • void initializeXRayInstrumentationLegacyPass (PassRegistry & )

    Defined at line 334 of file llvm/lib/CodeGen/XRayInstrumentation.cpp

  • basic_string getPGOName (const GlobalVariable & V, bool InLTO)

    Defined at line 437 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool IsSingleCodeUnitUTF32Codepoint (unsigned int )

    Defined at line 312 of file llvm/lib/Support/ConvertUTFWrapper.cpp

  • optional getLoopEstimatedTripCount (Loop * L, unsigned int * EstimatedLoopInvocationWeight)

    Return either:

    -

    if the implementation is unable to handle the loop form

    of

    (e.g.,

    must have a latch block that controls the loop exit).

    - The value of

    from the loop metadata of

    if that metadata is present. In the special case that the value is

    zero, return

    instead as that is historically what callers

    expect when a loop is estimated to execute no iterations (i.e., its header

    is not reached).

    - Else, a new estimate of the trip count from the latch branch weights of

    An estimated trip count is always a valid positive trip count, saturated at

    In addition, if

    then either:

    - Set

    to the weight of the latch's branch

    to the loop exit.

    - Do not set it, and return

    if the current implementation

    cannot compute that weight (e.g., if

    does not have a latch block that

    controls the loop exit) or the weight is zero (because zero cannot be

    used to compute new branch weights that reflect the estimated trip count).

    TODO: Eventually, once all passes have migrated away from setting branch

    weights to indicate estimated trip counts, this function will drop the

    parameter.

    Defined at line 868 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • Value * salvageDebugInfoImpl (Instruction & I, uint64_t CurrentLocOps, SmallVectorImpl<uint64_t> & Ops, SmallVectorImpl<Value *> & AdditionalValues)

    Given an instruction

    and DIExpression

    operating on

    it, append the effects of

    to the DIExpression operand list

    or return

    if it cannot be salvaged.

    is the number of SSA values referenced by the

    incoming

    /

    I = add %a, i32 1

    Return = %a

    Ops = llvm::dwarf::DW_OP_lit1 llvm::dwarf::DW_OP_add

    I = add %a, %b

    Return = %a

    Ops = llvm::dwarf::DW_OP_LLVM_arg0 llvm::dwarf::DW_OP_add

    AdditionalValues = %b

    Returns

    the first non-constant operand

    implicitly referred to by Ops. If

    references more than one

    non-constant operand, any additional operands are added to

    Defined at line 2274 of file llvm/lib/Transforms/Utils/Local.cpp

  • raw_ostream & operator<< (raw_ostream & OS, CaptureComponents CC)

    Defined at line 64 of file llvm/lib/Support/ModRef.cpp

  • Align inferAlignFromPtrInfo (MachineFunction & MF, const MachinePointerInfo & MPO)

    Defined at line 905 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • MapVector<Instruction *, uint64_t> computeMinimumValueSizes (ArrayRef Blocks, DemandedBits & DB, const TargetTransformInfo * TTI)

    Compute a map of integer instructions to their minimum legal type

    size.

    C semantics force sub-int-sized values (e.g. i8, i16) to be promoted to int

    type (e.g. i32) whenever arithmetic is performed on them.

    For targets with native i8 or i16 operations, usually InstCombine can shrink

    the arithmetic type down again. However InstCombine refuses to create

    illegal types, so for targets without i8 or i16 registers, the lengthening

    and shrinking remains.

    Most SIMD ISAs (e.g. NEON) however support vectors of i8 or i16 even when

    their scalar equivalents do not, so during vectorization it is important to

    remove these lengthens and truncates when deciding the profitability of

    vectorization.

    This function analyzes the given range of instructions and determines the

    minimum type size each can be converted to. It attempts to remove or

    minimize type size changes across each def-use chain, so for example in the

    following code:

    %1 = load i8, i8*

    %2 = add i8 %1, 2

    %3 = load i16, i16*

    %4 = zext i8 %2 to i32

    %5 = zext i16 %3 to i32

    %6 = add i32 %4, %5

    %7 = trunc i32 %6 to i16

    Instruction %6 must be done at least in i16, so computeMinimumValueSizes

    will return: {%1: 16, %2: 16, %3: 16, %4: 16, %5: 16, %6: 16, %7: 16}.

    If the optional TargetTransformInfo is provided, this function tries harder

    to do less work by only looking at illegal types.

    Defined at line 808 of file llvm/lib/Analysis/VectorUtils.cpp

  • void createPGOFuncNameMetadata (Function & F, StringRef PGOFuncName)

    Create the PGOFuncName meta data if PGOFuncName is different from

    function's raw name. This should only apply to internal linkage functions

    declared by users only.

    TODO: Update all callers to 'createPGONameMetadata' and deprecate this

    function.

    Defined at line 1460 of file llvm/lib/ProfileData/InstrProf.cpp

  • int getReleaseModeAdvisor (Module & M, ModuleAnalysisManager & MAM, std::function<bool (CallBase &)> GetDefaultAdvice)

    Defined at line 75 of file llvm/lib/Analysis/MLInlineAdvisor.cpp

  • InlineResult InlineFunction (CallBase & CB, InlineFunctionInfo & IFI, PGOContextualProfile & CtxProf, bool MergeAttributes, AAResults * CalleeAAR, bool InsertLifetime, Function * ForwardVarArgsTo, OptimizationRemarkEmitter * ORE)

    Inline. If successful, update the contextual profile (if a valid one is

    given).

    The contextual profile data is organized in trees, as follows:

    - each node corresponds to a function

    - the root of each tree corresponds to an "entrypoint" - e.g.

    RPC handler for server side

    - the path from the root to a node is a particular call path

    - the counters stored in a node are counter values observed in that

    particular call path ("context")

    - the edges between nodes are annotated with callsite IDs.

    Updating the contextual profile after an inlining means, at a high level,

    copying over the data of the callee, **intentionally without any value

    scaling**, and copying over the callees of the inlined callee.

    Defined at line 2363 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void createPGONameMetadata (GlobalObject & GO, StringRef PGOName)

    Create the PGOName metadata if a global object's PGO name is different from

    its mangled name. This should apply to local-linkage global objects only.

    Defined at line 1464 of file llvm/lib/ProfileData/InstrProf.cpp

  • StringRef::size_type StrInStrNoCase (StringRef s1, StringRef s2)

    StrInStrNoCase - Portable version of strcasestr. Locates the first

    occurrence of string 's1' in string 's2', ignoring case. Returns

    the offset of s2 in s1 or npos if s2 cannot be found.

    Defined at line 23 of file llvm/lib/Support/StringExtras.cpp

  • int getDevelopmentModeAdvisor (Module & M, ModuleAnalysisManager & MAM, std::function<bool (CallBase &)> GetDefaultAdvice)

    Defined at line of file

  • void ComputeCrossModuleImport (const ModuleSummaryIndex & Index, const DenseMap<StringRef, GVSummaryMapTy> & ModuleToDefinedGVSummaries, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, FunctionImporter::ImportListsTy & ImportLists, DenseMap<StringRef, FunctionImporter::ExportSetTy> & ExportLists)

    Compute all the import and export for every module using the Index.

    Defined at line 1218 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void ComputeCrossModuleImport (const ModuleSummaryIndex & Index, const int & ModuleToDefinedGVSummaries, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, FunctionImporter::ImportListsTy & ImportLists, int & ExportLists)

    Compute all the imports and exports for every module in the Index.

    contains for each Module a map

    (GUID -> Summary) for every global defined in the module.

    is a callback that will be called with a global value's GUID

    and summary and should return whether the module corresponding to the

    summary contains the linker-prevailing copy of that value.

    will be populated with an entry for every Module we are

    importing into. This entry is itself a map that can be passed to

    FunctionImporter::importFunctions() above (see description there).

    contains for each Module the set of globals (GUID) that will

    be imported by another module, or referenced by such a function. I.e. this

    is the set of globals that need to be promoted/renamed appropriately.

    The module identifier strings that are the keys of the above two maps

    are owned by the in-memory ModuleSummaryIndex the importing decisions

    are made from (the module path for each summary is owned by the index's

    module path string table).

    Defined at line of file

  • MDNode * uniteAccessGroups (MDNode * AccGroups1, MDNode * AccGroups2)

    Compute the union of two access-group lists.

    If the list contains just one access group, it is returned directly. If the

    list is empty, returns nullptr.

    Defined at line 988 of file llvm/lib/Analysis/VectorUtils.cpp

  • Register getFunctionLiveInPhysReg (MachineFunction & MF, const TargetInstrInfo & TII, MCRegister PhysReg, const TargetRegisterClass & RC, const DebugLoc & DL, LLT RegTy)

    Return a virtual register corresponding to the incoming argument register

    This register is expected to have class

    and optional type

    This assumes all references to the register will use the same type.

    If there is an existing live-in argument register, it will be returned.

    This will also ensure there is a valid copy

    Defined at line 922 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • BasicBlock * splitBlockBefore (BasicBlock * Old, int SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)

    Split the specified block at the specified instruction

    All instructions before

    are moved to a new block and all

    instructions after

    stay in the old block. The new block and the

    old block are joined by inserting an unconditional branch to the end of the

    new block. The new block with name

    is returned.

    Defined at line of file

  • BasicBlock * splitBlockBefore (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)

    Split the specified block at the specified instruction

    All instructions before

    are moved to a new block and all

    instructions after

    stay in the old block. The new block and the

    old block are joined by inserting an unconditional branch to the end of the

    new block. The new block with name

    is returned.

    Defined at line 1067 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool needsComdatForCounter (const GlobalObject & GV, const Module & M)

    Check if we can use Comdat for profile variables. This will eliminate

    the duplicated profile variables for Comdat functions.

    Defined at line 1468 of file llvm/lib/ProfileData/InstrProf.cpp

  • pair getToken (StringRef Source, StringRef Delimiters)

    getToken - This function extracts one token from source, ignoring any

    leading characters that appear in the Delimiters string, and ending the

    token at any of the characters that appear in the Delimiters string. If

    there are no tokens in the source string, an empty string is returned.

    The function returns a pair containing the extracted token and the

    remaining tail string.

    Defined at line 39 of file llvm/lib/Support/StringExtras.cpp

  • bool setLoopEstimatedTripCount (Loop * L, unsigned int EstimatedTripCount, optional EstimatedLoopInvocationWeight)

    Set

    with the value

    in the loop metadata of

    Return false if the implementation is unable

    to handle the loop form of

    (e.g.,

    must have a latch block that

    controls the loop exit). Otherwise, return true.

    In addition, if

    - Set the branch weight metadata of

    to reflect that

    has an

    estimated

    iterations and has

    exit weight through the loop's latch.

    - If

    is zero, zero the branch weights.

    TODO: Eventually, once all passes have migrated away from setting branch

    weights to indicate estimated trip counts, this function will drop the

    parameter.

    Defined at line 942 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • MDNode * intersectAccessGroups (const Instruction * Inst1, const Instruction * Inst2)

    Compute the access-group list of access groups that

    and

    are both in. If either instruction does not access memory at all, it is

    considered to be in every list.

    If the list contains just one access group, it is returned directly. If the

    list is empty, returns nullptr.

    Defined at line 1009 of file llvm/lib/Analysis/VectorUtils.cpp

  • Error readAndDecodeStrings (StringRef NameStrings, std::function<Error (StringRef)> NameCallback)

    is a string composed of one or more possibly encoded

    sub-strings. The substrings are separated by `

    \

    01` (returned by

    InstrProf.h:getInstrProfNameSeparator). This method decodes the string and

    calls `NameCallback` for each substring.

    Defined at line 576 of file llvm/lib/ProfileData/InstrProf.cpp

  • bool operator== (const DWARFDie::iterator & LHS, const DWARFDie::iterator & RHS)

    Defined at line 391 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h

  • bool replaceAllDbgUsesWith (Instruction & From, Value & To, Instruction & DomPoint, DominatorTree & DT)

    Point debug users of

    to

    or salvage them. Use this function

    only when replacing all uses of

    with

    with a guarantee that

    is going to be deleted.

    Follow these rules to prevent use-before-def of

    . If

    is a linked Instruction, set

    to

    . If

    is an unlinked Instruction, set

    to the Instruction

    will be inserted after.

    . If

    is not an Instruction (e.g a Constant), the choice of

    is arbitrary. Pick

    for simplicity.

    If a debug user cannot be preserved without reordering variable updates or

    introducing a use-before-def, it is either salvaged (

    or deleted. Returns true if any debug users were updated.

    Defined at line 2414 of file llvm/lib/Transforms/Utils/Local.cpp

  • Loop * cloneLoopWithPreheader (BasicBlock * Before, BasicBlock * LoopDomBB, Loop * OrigLoop, ValueToValueMapTy & VMap, const Twine & NameSuffix, LoopInfo * LI, DominatorTree * DT, SmallVectorImpl<BasicBlock *> & Blocks)

    Clones a loop

    Returns the loop and the blocks in

    Updates LoopInfo and DominatorTree assuming the loop is dominated by block

    Insert the new blocks before block specified in

    Defined at line 1009 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • Loop * cloneLoopWithPreheader (BasicBlock * Before, BasicBlock * LoopDomBB, Loop * OrigLoop, int & VMap, const Twine & NameSuffix, LoopInfo * LI, DominatorTree * DT, SmallVectorImpl<BasicBlock *> & Blocks)

    Clones a loop

    Returns the loop and the blocks in

    Updates LoopInfo and DominatorTree assuming the loop is dominated by block

    Insert the new blocks before block specified in

    Note: Only innermost loops are supported.

    Defined at line of file

  • std::optional<InlineCost> shouldInline (CallBase & CB, TargetTransformInfo & CalleeTTI, function_ref<InlineCost (CallBase &)> GetInlineCost, OptimizationRemarkEmitter & ORE, bool EnableDeferral)

    Return the cost only if the inliner should attempt to inline at the given

    CallSite. If we return the cost, we will emit an optimisation remark later

    using that cost, so we won't do so from this function. Return std::nullopt

    if inlining should not be attempted.

    Defined at line 411 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • LLT getLCMType (LLT OrigTy, LLT TargetTy)

    Return the least common multiple type of

    and

    by

    changing the number of vector elements or scalar bitwidth. The intent is a

    G_MERGE_VALUES, G_BUILD_VECTOR, or G_CONCAT_VECTORS can be constructed from

    elements, and unmerged into

    It is an error to call

    this function where one argument is a fixed vector and the other is a

    scalable vector, since it is illegal to build a G_{MERGE|UNMERGE}_VALUES

    between fixed and scalable vectors.

    Defined at line 1195 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void SplitString (StringRef Source, SmallVectorImpl<StringRef> & OutFragments, StringRef Delimiters)

    SplitString - Split up the specified string according to the specified

    delimiters, appending the result fragments to the output list.

    Defined at line 52 of file llvm/lib/Support/StringExtras.cpp

  • LLT getCoverTy (LLT OrigTy, LLT TargetTy)

    Return smallest type that covers both

    and

    and is

    multiple of TargetTy.

    Defined at line 1262 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void getMetadataToPropagate (Instruction * Inst, SmallVectorImpl<std::pair<unsigned int, MDNode *>> & Metadata)

    Add metadata from

    to

    if it can be preserved after

    vectorization.

    Defined at line 1057 of file llvm/lib/Analysis/VectorUtils.cpp

  • void updateIndirectCalls (ModuleSummaryIndex & Index)

    Update call edges for indirect calls to local functions added from

    SamplePGO when needed. Normally this is done during

    computeDeadSymbolsAndUpdateIndirectCalls, but can be called standalone

    when that is not called (e.g. during testing).

    Defined at line 1424 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void remapInstructionsInBlocks (ArrayRef<BasicBlock *> Blocks, ValueToValueMapTy & VMap)

    Remaps instructions in

    using the mapping in

    Defined at line 991 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void remapInstructionsInBlocks (ArrayRef<BasicBlock *> Blocks, int & VMap)

    Remaps instructions in

    using the mapping in

    Defined at line of file

  • bool handleUnreachableTerminator (Instruction * I, SmallVectorImpl<Value *> & PoisonedValues)

    If a terminator in an unreachable basic block has an operand of type

    Instruction, transform it into poison. Return true if any operands

    are changed to poison. Original Values prior to being changed to poison

    are returned in

    Defined at line 2468 of file llvm/lib/Transforms/Utils/Local.cpp

  • void emitInlinedInto (OptimizationRemarkEmitter & ORE, DebugLoc DLoc, const BasicBlock * Block, const Function & Callee, const Function & Caller, bool IsMandatory, function_ref<void (OptimizationRemark &)> ExtraContext, const char * PassName)

    Emit ORE message.

    Defined at line 526 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • BranchProbability getLoopProbability (Loop * L)

    Based on branch weight metadata, return either:

    - An unknown probability if the implementation is unable to handle the loop

    form of

    (e.g.,

    must have a latch block that controls the loop

    exit).

    - The probability

    that, at the end of any iteration, the latch of

    will start another iteration such that `1 - P` is the probability of

    exiting the loop.

    Defined at line 987 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • Error joinErrors (Error , Error )

    Concatenate errors. The resulting Error is unchecked, and contains the

    ErrorInfo(s), if any, contained in E1, followed by the

    ErrorInfo(s), if any, contained in E2.

    Defined at line 442 of file llvm/include/llvm/Support/Error.h

  • LLVMContextRef getGlobalContextForCAPI ()

    Get the deprecated global context for use by the C API.

    Defined at line 100 of file llvm/lib/IR/Core.cpp

  • bool operator== (const SDTypeConstraint & LHS, const SDTypeConstraint & RHS)

    Defined at line 1746 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • unsigned int removeAllNonTerminatorAndEHPadInstructions (BasicBlock * BB)

    Remove all instructions from a basic block other than its terminator

    and any present EH pad instructions. Returns the number of instructions

    that have been removed.

    Defined at line 2485 of file llvm/lib/Transforms/Utils/Local.cpp

  • MachineFunctionPass * createMachineCopyPropagationPass (bool UseCopyInstr)

    Defined at line 1620 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp

  • bool operator< (const SDTypeConstraint & LHS, const SDTypeConstraint & RHS)

    Defined at line 1772 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void emitInlinedIntoBasedOnCost (OptimizationRemarkEmitter & ORE, DebugLoc DLoc, const BasicBlock * Block, const Function & Callee, const Function & Caller, const InlineCost & IC, bool ForProfileContext, const char * PassName)

    Emit ORE message based in cost (default heuristic).

    Defined at line 544 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • bool isRangeRelaxable (const MCSymbol * Begin, const MCSymbol * End)

    Determine whether the offset between two labels can change at link time.

    Currently, this function is used only in DWARF info emission logic, where it

    helps generate more optimal debug info when the offset between labels is

    constant at link time.

    Defined at line 94 of file llvm/lib/MC/MCSymbol.cpp

  • bool setLoopProbability (Loop * L, BranchProbability P)

    Set branch weight metadata for the latch of

    to indicate that, at the

    end of any iteration,

    and `1 - P` are the probabilities of starting

    another iteration and exiting the loop, respectively. Return false if the

    implementation is unable to handle the loop form of

    (e.g.,

    must

    have a latch block that controls the loop exit). Otherwise, return true.

    Defined at line 995 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • BasicBlock * DuplicateInstructionsInSplitBetween (BasicBlock * BB, BasicBlock * PredBB, Instruction * StopAt, ValueToValueMapTy & ValueMapping, DomTreeUpdater & DTU)

    Duplicate non-Phi instructions from the beginning of block up to

    StopAt instruction into a split block between BB and its predecessor.

    Defined at line 1094 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • BasicBlock * DuplicateInstructionsInSplitBetween (BasicBlock * BB, BasicBlock * PredBB, Instruction * StopAt, int & ValueMapping, DomTreeUpdater & DTU)

    Split edge between BB and PredBB and duplicate all non-Phi instructions

    from BB between its beginning and the StopAt instruction into the split

    block. Phi nodes are not duplicated, but their uses are handled correctly:

    we replace them with the uses of corresponding Phi inputs. ValueMapping

    is used to map the original instructions from BB to their newly-created

    copies. Returns the split block.

    Defined at line of file

  • void computeDeadSymbolsAndUpdateIndirectCalls (ModuleSummaryIndex & Index, const DenseSet<GlobalValue::GUID> & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing)

    Compute all the symbols that are "dead": i.e these that can't be reached

    in the graph from any of the given symbols listed in

    Non-prevailing symbols are symbols without a

    prevailing copy anywhere in IR and are normally dead,

    predicate returns status of symbol.

    Also update call edges for indirect calls to local functions added from

    SamplePGO when needed.

    Defined at line 1433 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void computeDeadSymbolsAndUpdateIndirectCalls (ModuleSummaryIndex & Index, const int & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing)

    Compute all the symbols that are "dead": i.e these that can't be reached

    in the graph from any of the given symbols listed in

    Non-prevailing symbols are symbols without a

    prevailing copy anywhere in IR and are normally dead,

    predicate returns status of symbol.

    Also update call edges for indirect calls to local functions added from

    SamplePGO when needed.

    Defined at line of file

  • basic_string createGraphFilename (const Twine & Name, int & FD)

    Defined at line 111 of file llvm/lib/Support/GraphWriter.cpp

  • Instruction * propagateMetadata (Instruction * I, ArrayRef VL)

    Defined at line 1080 of file llvm/lib/Analysis/VectorUtils.cpp

  • unsigned int changeToUnreachable (Instruction * I, bool PreserveLCSSA, DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU)

    Insert an unreachable instruction before the specified

    instruction, making it and the rest of the code in the block dead.

    Defined at line 2513 of file llvm/lib/Transforms/Utils/Local.cpp

  • BasicBlock * SplitBlockPredecessors (BasicBlock * BB, ArrayRef<BasicBlock *> Preds, const char * Suffix, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    This method introduces at least one new basic block into the function and

    moves some of the predecessors of BB to be predecessors of the new block.

    The new predecessors are indicated by the Preds array. The new block is

    given a suffix of 'Suffix'. Returns new basic block to which predecessors

    from Preds are now pointing.

    If BB is a landingpad block then additional basicblock might be introduced.

    It will have Suffix+".split_lp". See SplitLandingPadPredecessors for more

    details on this case.

    This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but

    no other analyses. In particular, it does not preserve LoopSimplify

    (because it's complicated to handle the case where one of the edges being

    split is an exit of a loop with other exits).

    FIXME: deprecated, switch to the DomTreeUpdater-based one.

    Defined at line 1387 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool getConstantDataArrayInfo (const Value * V, ConstantDataArraySlice & Slice, unsigned int ElementSize, uint64_t Offset)

    If V refers to an initialized global constant, set Slice either to

    its initializer if the size of its elements equals ElementSize, or,

    for ElementSize == 8, to its representation as an array of unsiged

    char. Return true on success.

    Offset is in the unit "nr of ElementSize sized elements".

    Defined at line 6666 of file llvm/lib/Analysis/ValueTracking.cpp

  • void addLocationToRemarks (OptimizationRemark & Remark, DebugLoc DLoc)

    Add location info to ORE message.

    Defined at line 500 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • void updateProfileCallee (Function * Callee, int64_t EntryDelta, const ValueMap<const Value *, WeakTrackingVH> * VMap)

    Updates profile information by adjusting the entry count by adding

    EntryDelta then scaling callsite information by the new count divided by the

    old count. VMap is used during inlinng to also update the new clone

    Defined at line 2063 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void updateProfileCallee (Function * Callee, int64_t EntryDelta, const int * VMap)

    Updates profile information by adjusting the entry count by adding

    EntryDelta then scaling callsite information by the new count divided by the

    old count. VMap is used during inlinng to also update the new clone

    Defined at line of file

  • void computeDeadSymbolsWithConstProp (ModuleSummaryIndex & Index, const int & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing, bool ImportEnabled)

    Compute dead symbols and run constant propagation in combined index

    after that.

    Defined at line of file

  • void computeDeadSymbolsWithConstProp (ModuleSummaryIndex & Index, const DenseSet<GlobalValue::GUID> & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing, bool ImportEnabled)

    Compute dead symbols and propagate constants in combined index.

    Defined at line 1549 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void setInlineRemark (CallBase & CB, StringRef Message)

    Set the inline-remark attribute.

    Defined at line 399 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • BranchProbability getBranchProbability (BranchInst * B, bool ForFirstTarget)

    Based on branch weight metadata, return either:

    - An unknown probability if the implementation cannot extract the

    probability (e.g.,

    must have exactly two target labels, so it must be

    a conditional branch).

    - The probability

    that control flows from

    to its first target

    label such that `1 - P` is the probability of control flowing to its

    second target label, or vice-versa if

    is false.

    Defined at line 1003 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • const std::error_category & instrprof_category ()

    Defined at line 193 of file llvm/lib/ProfileData/InstrProf.cpp

  • basic_string inlineCostStr (const InlineCost & IC)

    Utility for extracting the inline cost message to a string.

    Defined at line 392 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • LLT getGCDType (LLT OrigTy, LLT TargetTy)

    Return a type where the total size is the greatest common divisor of

    and

    This will try to either change the number of vector

    elements, or bitwidth of scalars. The intent is the result type can be used

    as the result of a G_UNMERGE_VALUES from

    and then some

    combination of G_MERGE_VALUES, G_BUILD_VECTOR and G_CONCAT_VECTORS (possibly

    with intermediate casts) can re-form

    If these are vectors with different element types, this will try to produce

    a vector with a compatible total size, but the element type of

    If

    this can't be satisfied, this will produce a scalar smaller than the

    original vector elements. It is an error to call this function where

    one argument is a fixed vector and the other is a scalable vector, since it

    is illegal to build a G_{MERGE|UNMERGE}_VALUES between fixed and scalable

    vectors.

    In the worst case, this returns LLT::scalar(1)

    Defined at line 1283 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • BasicBlock * changeToInvokeAndSplitBasicBlock (CallInst * CI, BasicBlock * UnwindEdge, DomTreeUpdater * DTU)

    Convert the CallInst to InvokeInst with the specified unwind edge basic

    block. This also splits the basic block where CI is located, because

    InvokeInst is a terminator instruction. Returns the newly split basic

    block.

    Defined at line 2603 of file llvm/lib/Transforms/Utils/Local.cpp

  • void printEscapedString (StringRef Name, raw_ostream & Out)

    Print each character of the specified string, escaping it if it is not

    printable or if it is an escape char.

    Defined at line 62 of file llvm/lib/Support/StringExtras.cpp

  • void identifyNoAliasScopesToClone (ArrayRef<BasicBlock *> BBs, SmallVectorImpl<MDNode *> & NoAliasDeclScopes)

    Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified

    basic blocks and extract their scope. These are candidates for duplication

    when cloning.

    Defined at line 1239 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DDGNode & N)

    Defined at line 81 of file llvm/lib/Analysis/DDG.cpp

  • bool convertToDeclaration (GlobalValue & GV)

    Converts value

    to declaration, or replaces with a declaration if

    it is an alias. Returns true if converted, false if replaced.

    Defined at line 1631 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool getConstantStringInfo (const Value * V, StringRef & Str, bool TrimAtNul)

    Extract bytes from the initializer of the constant array V, which need

    not be a nul-terminated string. On success, store the bytes in Str and

    return true. When TrimAtNul is set, Str will contain only the bytes up

    to but not including the first nul. Return false on failure.

    Defined at line 6761 of file llvm/lib/Analysis/ValueTracking.cpp

  • Constant * createBitMaskForGaps (IRBuilderBase & Builder, unsigned int VF, const InterleaveGroup<Instruction> & Group)

    Create a mask that filters the members of an interleave group where there

    are gaps.

    For example, the mask for

    with interleave-factor 3

    and

    4, that has only its first member present is:

    <

    1,0,0,1,0,0,1,0,0,1,0,0>

    Note: The result is a mask of 0's and 1's, as opposed to the other

    create[*]Mask() utilities which create a shuffle mask (mask that

    consists of indices).

    Defined at line 1128 of file llvm/lib/Analysis/VectorUtils.cpp

  • void printHTMLEscaped (StringRef String, raw_ostream & Out)

    Print each character of the specified string, escaping HTML special

    characters.

    Defined at line 73 of file llvm/lib/Support/StringExtras.cpp

  • raw_ostream & operator<< (raw_ostream & OS, NodeKind K)

    Defined at line 58 of file llvm/lib/Analysis/DDG.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DDGEdge & E)

    Defined at line 176 of file llvm/lib/Analysis/DDG.cpp

  • bool setBranchProbability (BranchInst * B, BranchProbability P, bool ForFirstTarget)

    Set branch weight metadata for

    to indicate that

    and `1 - P` are

    the probabilities of control flowing to its first and second target labels,

    respectively, or vice-versa if

    is false. Return false if

    the implementation cannot set the probability (e.g.,

    must have exactly

    two target labels, so it must be a conditional branch). Otherwise, return

    true.

    Defined at line 1018 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • raw_ostream & operator<< (raw_ostream & OS, EdgeKind K)

    ===--------------------------------------------------------------------===//

    DDGEdge implementation

    ===--------------------------------------------------------------------===//

    Defined at line 156 of file llvm/lib/Analysis/DDG.cpp

  • void printLowerCase (StringRef String, raw_ostream & Out)

    printLowerCase - Print each character as lowercase if it is uppercase.

    Defined at line 90 of file llvm/lib/Support/StringExtras.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const DataDependenceGraph & G)

    Defined at line 252 of file llvm/lib/Analysis/DDG.cpp

  • uint64_t GetStringLength (const Value * V, unsigned int CharSize)

    If we can compute the length of the string pointed to by

    the specified pointer, return 'len+1'. If we can't, return 0.

    Defined at line 6872 of file llvm/lib/Analysis/ValueTracking.cpp

  • void identifyNoAliasScopesToClone (ilist_iterator_w_bits Start, ilist_iterator_w_bits End, SmallVectorImpl<MDNode *> & NoAliasDeclScopes)

    Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified

    instruction range and extract their scope. These are candidates for

    duplication when cloning.

    Defined at line 1247 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void identifyNoAliasScopesToClone (int Start, int End, SmallVectorImpl<MDNode *> & NoAliasDeclScopes)

    Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified

    instruction range and extract their scope. These are candidates for

    duplication when cloning.

    Defined at line of file

  • Instruction * removeUnwindEdge (BasicBlock * BB, DomTreeUpdater * DTU)

    Replace 'BB's terminator with one that does not have an unwind successor

    block. Rewrites `invoke` to `call`, etc. Updates any PHIs in unwind

    successor. Returns the instruction that replaced the original terminator,

    which might be a call in case the original terminator was an invoke.

    Parameters

    BB Block whose terminator will be replaced. Its terminator must have an unwind successor.

    Defined at line 2845 of file llvm/lib/Transforms/Utils/Local.cpp

  • BasicBlock * SplitBlockPredecessors (BasicBlock * BB, ArrayRef<BasicBlock *> Preds, const char * Suffix, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    This method introduces at least one new basic block into the function and

    moves some of the predecessors of BB to be predecessors of the new block.

    The new predecessors are indicated by the Preds array. The new block is

    given a suffix of 'Suffix'. Returns new basic block to which predecessors

    from Preds are now pointing.

    If BB is a landingpad block then additional basicblock might be introduced.

    It will have Suffix+".split_lp". See SplitLandingPadPredecessors for more

    details on this case.

    This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but

    no other analyses. In particular, it does not preserve LoopSimplify

    (because it's complicated to handle the case where one of the edges being

    split is an exit of a loop with other exits).

    Defined at line 1395 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool hasIterationCountInvariantInParent (Loop * L, ScalarEvolution & SE)

    Check inner loop (L) backedge count is known to be invariant on all

    iterations of its outer loop. If the loop has no parent, this is trivially

    true.

    Defined at line 1031 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • basic_string convertToSnakeFromCamelCase (StringRef input)

    Converts a string from camel-case to snake-case by replacing all uppercase

    letters with '_' followed by the letter in lowercase, except if the

    uppercase letter is the first character of the string.

    Defined at line 95 of file llvm/lib/Support/StringExtras.cpp

  • FunctionPass * createGVNPass ()

    Create a legacy GVN pass.

    Defined at line 3402 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • const Value * getArgumentAliasingToReturnedPointer (const CallBase * Call, bool MustPreserveNullness)

    This function returns call pointer argument that is considered the same by

    aliasing rules. You CAN'T use it to replace one value with another. If

    is true, the call must preserve the nullness of

    the pointer.

    Defined at line 6883 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool removeUnreachableBlocks (Function & F, DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU)

    Remove all blocks that can not be reached from the function's entry.

    Returns true if any basic block was removed.

    Defined at line 2883 of file llvm/lib/Transforms/Utils/Local.cpp

  • void getLoopAnalysisUsage (AnalysisUsage & AU)

    Helper to consistently add the set of standard passes to a loop pass's

    All loop passes should call this as part of implementing their

    Defined at line 142 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • basic_string convertToCamelFromSnakeCase (StringRef input, bool capitalizeFirst)

    Converts a string from snake-case to camel-case by replacing all occurrences

    of '_' followed by a lowercase letter with the letter in uppercase.

    Optionally allow capitalization of the first letter (if it is a lowercase

    letter)

    Defined at line 115 of file llvm/lib/Support/StringExtras.cpp

  • void gatherImportedSummariesForModule (StringRef ModulePath, const DenseMap<StringRef, GVSummaryMapTy> & ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy & ImportList, ModuleToSummariesForIndexTy & ModuleToSummariesForIndex, GVSummaryPtrSet & DecSummaries)

    Compute the set of summaries needed for a ThinLTO backend compilation of

    Defined at line 1563 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void gatherImportedSummariesForModule (StringRef ModulePath, const int & ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy & ImportList, ModuleToSummariesForIndexTy & ModuleToSummariesForIndex, GVSummaryPtrSet & DecSummaries)

    Compute the set of summaries needed for a ThinLTO backend compilation of

    This includes summaries from that module (in case any global summary based

    optimizations were recorded) and from any definitions in other modules that

    should be imported.

    will be populated with the needed summaries

    from each required module path. Use a std::map instead of StringMap to get

    stable order for bitcode emission.

    will be popluated with the subset of of summary pointers

    that have 'declaration' import type among all summaries the module need.

    Defined at line of file

  • void gatherImportedSummariesForModule (StringRef ModulePath, const int & ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy & ImportList, int & ModuleToSummariesForIndex, int & DecSummaries)

    Compute the set of summaries needed for a ThinLTO backend compilation of

    This includes summaries from that module (in case any global summary based

    optimizations were recorded) and from any definitions in other modules that

    should be imported.

    will be populated with the needed summaries

    from each required module path. Use a std::map instead of StringMap to get

    stable order for bitcode emission.

    will be popluated with the subset of of summary pointers

    that have 'declaration' import type among all summaries the module need.

    Defined at line of file

  • SmallVector createReplicatedMask (unsigned int ReplicationFactor, unsigned int VF)

    Create a mask with replicated elements.

    This function creates a shuffle mask for replicating each of the

    elements in a vector

    times. It can be used to

    transform a mask of

    elements into a mask of

    *

    elements used by a predicated

    interleaved-group of loads/stores whose Interleaved-factor ==

    For example, the mask for

    and

    is:

    <

    0,0,0,1,1,1,2,2,2,3,3,3>

    Defined at line 1148 of file llvm/lib/Analysis/VectorUtils.cpp

  • void cloneNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, DenseMap<MDNode *, MDNode *> & ClonedScopes, StringRef Ext, LLVMContext & Context)

    Duplicate the specified list of noalias decl scopes.

    The 'Ext' string is added as an extension to the name.

    Afterwards, the ClonedScopes contains the mapping of the original scope

    MDNode onto the cloned scope.

    Be aware that the cloned scopes are still part of the original scope domain.

    Defined at line 1143 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void cloneNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, int & ClonedScopes, StringRef Ext, LLVMContext & Context)

    Duplicate the specified list of noalias decl scopes.

    The 'Ext' string is added as an extension to the name.

    Afterwards, the ClonedScopes contains the mapping of the original scope

    MDNode onto the cloned scope.

    Be aware that the cloned scopes are still part of the original scope domain.

    Defined at line of file

  • FunctionPass * createStackProtectorPass ()

    createStackProtectorPass - This pass adds stack protectors to functions.

    Defined at line 164 of file llvm/lib/CodeGen/StackProtector.cpp

  • FunctionPass * createMachineVerifierPass (const std::string & Banner)

    createMachineVerifierPass - This pass verifies cenerated machine code

    instructions for correctness.

    Defined at line 413 of file llvm/lib/CodeGen/MachineVerifier.cpp

  • LazyCallGraph::SCC & updateCGAndAnalysisManagerForFunctionPass (LazyCallGraph & G, LazyCallGraph::SCC & C, LazyCallGraph::Node & N, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR, FunctionAnalysisManager & FAM)

    Helper to update the call graph after running a function pass.

    Function passes can only mutate the call graph in specific ways. This

    routine provides a helper that updates the call graph in those ways

    including returning whether any changes were made and populating a CG

    update result struct for the overall CGSCC walk.

    Defined at line 1182 of file llvm/lib/Analysis/CGSCCPassManager.cpp

  • void combineMetadataForCSE (Instruction * K, const Instruction * J, bool DoesKMove)

    Combine the metadata of two instructions so that K can replace J. This

    specifically handles the case of CSE-like transformations. Some

    metadata can only be kept if K dominates J. For this to be correct,

    K cannot be hoisted.

    Unknown metadata is removed.

    Defined at line 3094 of file llvm/lib/Transforms/Utils/Local.cpp

  • Error EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const int & ModuleToSummariesForIndex)

    Emit into

    the files module

    will import from.

    Defined at line of file

  • Error EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const ModuleToSummariesForIndexTy & ModuleToSummariesForIndex)

    Emit into

    the files module

    will import from.

    Defined at line 1604 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void adaptNoAliasScopes (llvm::Instruction * I, const int & ClonedScopes, LLVMContext & Context)

    Adapt the metadata for the specified instruction according to the

    provided mapping. This is normally used after cloning an instruction, when

    some noalias scopes needed to be cloned.

    Defined at line of file

  • void adaptNoAliasScopes (llvm::Instruction * I, const DenseMap<MDNode *, MDNode *> & ClonedScopes, LLVMContext & Context)

    Adapt the metadata for the specified instruction according to the

    provided mapping. This is normally used after cloning an instruction, when

    some noalias scopes needed to be cloned.

    Defined at line 1168 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void SplitLandingPadPredecessors (BasicBlock * OrigBB, ArrayRef<BasicBlock *> Preds, const char * Suffix, const char * Suffix2, SmallVectorImpl<BasicBlock *> & NewBBs, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    This method transforms the landing pad, OrigBB, by introducing two new basic

    blocks into the function. One of those new basic blocks gets the

    predecessors listed in Preds. The other basic block gets the remaining

    predecessors of OrigBB. The landingpad instruction OrigBB is clone into both

    of the new basic blocks. The new blocks are given the suffixes 'Suffix1' and

    'Suffix2', and are returned in the NewBBs vector.

    This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but

    no other analyses. In particular, it does not preserve LoopSimplify

    (because it's complicated to handle the case where one of the edges being

    split is an exit of a loop with other exits).

    Defined at line 1507 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • std::optional<int> getSplatIndex (MachineInstr & MI)

    Defined at line 1337 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createDwarfEHPass (CodeGenOptLevel OptLevel)

    createDwarfEHPass - This pass mulches exception handling code into a form

    adapted to code generation. Required if using dwarf exception handling.

    Defined at line 407 of file llvm/lib/CodeGen/DwarfEHPrepare.cpp

  • bool isIntrinsicReturningPointerAliasingArgumentWithoutCapturing (const CallBase * Call, bool MustPreserveNullness)

    {launder,strip}.invariant.group returns pointer that aliases its argument,

    and it only captures pointer by returning it.

    These intrinsics are not marked as nocapture, because returning is

    considered as capture. The arguments are not marked as returned neither,

    because it would make it useless. If

    is true,

    the intrinsic must preserve the nullness of the pointer.

    Defined at line 6897 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool canSinkOrHoistInst (Instruction & I, AAResults * AA, DominatorTree * DT, Loop * CurLoop, MemorySSAUpdater & MSSAU, bool TargetExecutesOncePerLoop, SinkAndHoistLICMFlags & LICMFlags, OptimizationRemarkEmitter * ORE)

    Returns true if is legal to hoist or sink this instruction disregarding the

    possible introduction of faults. Reasoning about potential faulting

    instructions is the responsibility of the caller since it is challenging to

    do efficiently from within this routine.

    is true only when it is guaranteed that the

    target executes at most once per execution of the loop body. This is used

    to assess the legality of duplicating atomic loads. Generally, this is

    true when moving out of loop and not true when moving into loops.

    If

    is set use it to emit optimization remarks.

    Defined at line 1166 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • std::optional<APInt> getIConstantSplatVal (Register Reg, const MachineRegisterInfo & MRI)

    Defined at line 1447 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void processImportsFiles (StringRef ModulePath, const ModuleToSummariesForIndexTy & ModuleToSummariesForIndex, function_ref<void (const std::string &)> F)

    Call

    passing each of the files module

    will import from.

    Defined at line 1619 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void processImportsFiles (StringRef ModulePath, const int & ModuleToSummariesForIndex, function_ref<void (const std::string &)> F)

    Call

    passing each of the files module

    will import from.

    Defined at line of file

  • void combineAAMetadata (Instruction * K, const Instruction * J)

    Combine metadata of two instructions, where instruction J is a memory

    access that has been merged into K. This will intersect alias-analysis

    metadata, while preserving other known metadata.

    Defined at line 3099 of file llvm/lib/Transforms/Utils/Local.cpp

  • FunctionPass * createWinEHPass (bool DemoteCatchSwitchPHIOnly)

    createWinEHPass - Prepares personality functions used by MSVC on Windows,

    in addition to the Itanium LSDA based personalities.

    Defined at line 127 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • SmallVector createInterleaveMask (unsigned int VF, unsigned int NumVecs)

    Create an interleave shuffle mask.

    This function creates a shuffle mask for interleaving

    vectors of

    vectorization factor

    into a single wide vector. The mask is of the

    form:

    <

    0, VF, VF * 2, ..., VF * (NumVecs - 1), 1, VF + 1, VF * 2 + 1, ...>

    For example, the mask for VF = 4 and NumVecs = 2 is:

    <

    0, 4, 1, 5, 2, 6, 3, 7>.

    Defined at line 1158 of file llvm/lib/Analysis/VectorUtils.cpp

  • void cloneAndAdaptNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, ArrayRef<BasicBlock *> NewBlocks, LLVMContext & Context, StringRef Ext)

    Clone the specified noalias decl scopes. Then adapt all instructions in the

    NewBlocks basicblocks to the cloned versions.

    'Ext' will be added to the duplicate scope names.

    Defined at line 1202 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • std::optional<APInt> getIConstantSplatVal (const MachineInstr & MI, const MachineRegisterInfo & MRI)

    Defined at line 1459 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void copyMetadataForLoad (LoadInst & Dest, const LoadInst & Source)

    Copy the metadata from the source instruction to the destination (the

    replacement for the source instruction).

    Defined at line 3103 of file llvm/lib/Transforms/Utils/Local.cpp

  • ReturnInst * FoldReturnIntoUncondBranch (ReturnInst * RI, BasicBlock * BB, BasicBlock * Pred, DomTreeUpdater * DTU)

    This method duplicates the specified return instruction into a predecessor

    which ends in an unconditional branch. If the return instruction returns a

    value defined by a PHI, propagate the right value into the return. It

    returns the new return instruction in the predecessor.

    Defined at line 1519 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • LazyCallGraph::SCC & updateCGAndAnalysisManagerForCGSCCPass (LazyCallGraph & G, LazyCallGraph::SCC & C, LazyCallGraph::Node & N, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR, FunctionAnalysisManager & FAM)

    Helper to update the call graph after running a CGSCC pass.

    CGSCC passes can only mutate the call graph in specific ways. This

    routine provides a helper that updates the call graph in those ways

    including returning whether any changes were made and populating a CG

    update result struct for the overall CGSCC walk.

    Defined at line 1189 of file llvm/lib/Analysis/CGSCCPassManager.cpp

  • const Value * getUnderlyingObject (const Value * V, unsigned int MaxLookup)

    This method strips off any GEP address adjustments, pointer casts

    or `llvm.threadlocal.address` from the specified value

    returning the

    original object being addressed. Note that the returned value has pointer

    type if the specified value does. If the

    value is non-zero, it

    limits the number of instructions to be stripped off.

    Defined at line 6953 of file llvm/lib/Analysis/ValueTracking.cpp

  • FunctionPass * createSjLjEHPreparePass (const TargetMachine * TM)

    Public Interface To the SjLjEHPrepare pass.

    Defined at line 102 of file llvm/lib/CodeGen/SjLjEHPrepare.cpp

  • Intrinsic::ID getReductionIntrinsicID (RecurKind RK)

    Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence

    kind.

    Defined at line 1053 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • std::optional<int64_t> getIConstantSplatSExtVal (Register Reg, const MachineRegisterInfo & MRI)

    Defined at line 1465 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void patchReplacementInstruction (Instruction * I, Value * Repl)

    Patch the replacement so that it is not more restrictive than the value

    being replaced. It assumes that the replacement does not get moved from

    its original position.

    Defined at line 3156 of file llvm/lib/Transforms/Utils/Local.cpp

  • Intrinsic::ID getMinMaxReductionIntrinsicID (Intrinsic::ID IID)

    Returns the llvm.vector.reduce min/max intrinsic that corresponds to the

    intrinsic op.

    Defined at line 1099 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void cloneAndAdaptNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, Instruction * IStart, Instruction * IEnd, LLVMContext & Context, StringRef Ext)

    Clone the specified noalias decl scopes. Then adapt all instructions in the

    [IStart, IEnd] (IEnd included !) range to the cloned versions. 'Ext' will be

    added to the duplicate scope names.

    Defined at line 1219 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • FunctionPass * createWasmEHPass ()

    createWasmEHPass - This pass adapts exception handling code to use

    WebAssembly's exception handling scheme.

    Defined at line 162 of file llvm/lib/CodeGen/WasmEHPrepare.cpp

  • void thinLTOFinalizeInModule (Module & TheModule, const GVSummaryMapTy & DefinedGlobals, bool PropagateAttrs)

    Based on the information recorded in the summaries during global

    summary-based analysis:

    1. Resolve prevailing symbol linkages and constrain visibility (CanAutoHide

    and consider visibility from other definitions for ELF) in

    2. (optional) Apply propagated function attributes to

    if

    PropagateAttrs is true

    Defined at line 1666 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void thinLTOFinalizeInModule (Module & TheModule, const int & DefinedGlobals, bool PropagateAttrs)

    Based on the information recorded in the summaries during global

    summary-based analysis:

    1. Resolve prevailing symbol linkages and constrain visibility (CanAutoHide

    and consider visibility from other definitions for ELF) in

    2. (optional) Apply propagated function attributes to

    if

    PropagateAttrs is true

    Defined at line of file

  • raw_ostream & operator<< (raw_ostream & OS, CaptureInfo Info)

    Defined at line 83 of file llvm/lib/Support/ModRef.cpp

  • unsigned int getArithmeticReductionInstruction (Intrinsic::ID RdxID)

    Returns the arithmetic instruction opcode used when expanding a reduction.

    Defined at line 1115 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • unsigned int replaceNonLocalUsesWith (Instruction * From, Value * To)

    Replace each use of 'From' with 'To', if that use does not belong to basic

    block where 'From' is defined. Returns the number of replacements made.

    Defined at line 3220 of file llvm/lib/Transforms/Utils/Local.cpp

  • std::optional<int64_t> getIConstantSplatSExtVal (const MachineInstr & MI, const MachineRegisterInfo & MRI)

    Defined at line 1474 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void emitAppleAccelTableImpl (AsmPrinter * Asm, AccelTableBase & Contents, StringRef Prefix, const MCSymbol * SecBegin, ArrayRef<AppleAccelTableData::Atom> Atoms)

    Defined at line 635 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp

  • Intrinsic::ID getReductionForBinop (BinaryOps Opc)

    Returns the reduction intrinsic id corresponding to the binary operation.

    Defined at line 1145 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • const Value * getUnderlyingObjectAggressive (const Value * V)

    Like getUnderlyingObject(), but will try harder to find a single underlying

    object. In particular, this function also looks through selects and phis.

    Defined at line 7042 of file llvm/lib/Analysis/ValueTracking.cpp

  • SmallVector createStrideMask (unsigned int Start, unsigned int Stride, unsigned int VF)

    Create a stride shuffle mask.

    This function creates a shuffle mask whose elements begin at

    and

    are incremented by

    The mask can be used to deinterleave an

    interleaved vector into separate vectors of vectorization factor

    The

    mask is of the form:

    <Start

    , Start + Stride, ..., Start + Stride * (VF - 1)>

    For example, the mask for Start = 0, Stride = 2, and VF = 4 is:

    <

    0, 2, 4, 6>

    Defined at line 1168 of file llvm/lib/Analysis/VectorUtils.cpp

  • void thinLTOInternalizeModule (Module & TheModule, const int & DefinedGlobals)

    Internalize

    based on the information recorded in the summaries

    during global summary-based analysis.

    Defined at line of file

  • void thinLTOInternalizeModule (Module & TheModule, const GVSummaryMapTy & DefinedGlobals)

    Internalize

    based on the information recorded in the summaries

    during global summary-based analysis.

    Defined at line 1795 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • Intrinsic::ID getMinMaxReductionIntrinsicOp (Intrinsic::ID RdxID)

    Returns the min/max intrinsic used when expanding a min/max reduction.

    Defined at line 1163 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • unsigned int replaceDominatedUsesWith (Value * From, Value * To, DominatorTree & DT, const BasicBlockEdge & Edge)

    Replace each use of 'From' with 'To' if that use is dominated by

    the given edge. Returns the number of replacements made.

    Defined at line 3235 of file llvm/lib/Transforms/Utils/Local.cpp

  • std::optional<FPValueAndVReg> getFConstantSplat (Register VReg, const MachineRegisterInfo & MRI, bool AllowUndef)

    Returns a floating point scalar constant of a build vector splat if it

    exists. When

    == true some elements can be undef but not all.

    Defined at line 1480 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Intrinsic::ID getMinMaxReductionIntrinsicOp (RecurKind RK)

    Returns the min/max intrinsic used when expanding a min/max reduction.

    Defined at line 1186 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • unsigned int replaceDominatedUsesWith (Value * From, Value * To, DominatorTree & DT, const BasicBlock * BB)

    Replace each use of 'From' with 'To' if that use is dominated by

    the end of the given BasicBlock. Returns the number of replacements made.

    Defined at line 3242 of file llvm/lib/Transforms/Utils/Local.cpp

  • RecurKind getMinMaxReductionRecurKind (Intrinsic::ID RdxID)

    Returns the recurence kind used when expanding a min/max reduction.

    Defined at line 1215 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • FunctionPass * createUnpackMachineBundles (std::function<bool (const MachineFunction &)> Ftor)

    Defined at line 80 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • bool isBuildVectorConstantSplat (Register Reg, const MachineRegisterInfo & MRI, int64_t SplatValue, bool AllowUndef)

    Return true if the specified register is defined by G_BUILD_VECTOR or

    G_BUILD_VECTOR_TRUNC where all of the elements are

    or undef.

    Defined at line 1407 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Predicate getMinMaxReductionPredicate (RecurKind RK)

    Returns the comparison predicate used when expanding a min/max reduction.

    Defined at line 1234 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • unsigned int replaceDominatedUsesWith (Value * From, Value * To, DominatorTree & DT, const Instruction * I)

    Replace each use of 'From' with 'To' if that use is dominated by the

    given instruction. Returns the number of replacements made.

    Defined at line 3249 of file llvm/lib/Transforms/Utils/Local.cpp

  • void emitDWARF5AccelTable (AsmPrinter * Asm, DWARF5AccelTable & Contents, const DwarfDebug & DD, ArrayRef<std::unique_ptr<DwarfCompileUnit>> CUs)

    Defined at line of file

  • void emitDWARF5AccelTable (AsmPrinter * Asm, DWARF5AccelTable & Contents, const DwarfDebug & DD, int CUs)

    Defined at line 642 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp

  • Instruction * SplitBlockAndInsertIfThen (Value * Cond, ilist_iterator_w_bits SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ThenBlock)

    Split the containing block at the specified instruction - everything before

    SplitBefore stays in the old basic block, and the rest of the instructions

    in the BB are moved to a new block. The two blocks are connected by a

    conditional branch (with value of Cmp being the condition).

    Before:

    Head

    SplitBefore

    Tail

    After:

    Head

    if (Cond)

    ThenBlock

    SplitBefore

    Tail

    If

    is not specified, a new block will be created for it.

    If

    is true, the newly created block will end with

    UnreachableInst, otherwise it branches to Tail.

    Returns the NewBasicBlock's terminator.

    Updates DTU and LI if given.

    Defined at line 1577 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Instruction * SplitBlockAndInsertIfThen (Value * Cond, int SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ThenBlock)

    Split the containing block at the specified instruction - everything before

    SplitBefore stays in the old basic block, and the rest of the instructions

    in the BB are moved to a new block. The two blocks are connected by a

    conditional branch (with value of Cmp being the condition).

    Before:

    Head

    SplitBefore

    Tail

    After:

    Head

    if (Cond)

    ThenBlock

    SplitBefore

    Tail

    If

    is not specified, a new block will be created for it.

    If

    is true, the newly created block will end with

    UnreachableInst, otherwise it branches to Tail.

    Returns the NewBasicBlock's terminator.

    Updates DTU and LI if given.

    Defined at line of file

  • SmallVector createSequentialMask (unsigned int Start, unsigned int NumInts, unsigned int NumUndefs)

    Create a sequential shuffle mask.

    This function creates shuffle mask whose elements are sequential and begin

    at

    The mask contains

    integers and is padded with

    undef values. The mask is of the form:

    <Start

    , Start + 1, ... Start + NumInts - 1, undef_1, ... undef_NumUndefs>

    For example, the mask for Start = 0, NumInsts = 4, and NumUndefs = 4 is:

    <

    0, 1, 2, 3, undef, undef, undef, undef>

    Defined at line 1177 of file llvm/lib/Analysis/VectorUtils.cpp

  • Value * getReductionIdentity (Intrinsic::ID RdxID, Type * Ty, FastMathFlags FMF)

    Given information about an

    .vector.reduce.* intrinsic, return

    the identity value for the reduction.

    Defined at line 1403 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool isBuildVectorConstantSplat (Register Reg, const MachineRegisterInfo & MRI, const APInt & SplatValue, bool AllowUndef)

    Return true if the specified register is defined by G_BUILD_VECTOR or

    G_BUILD_VECTOR_TRUNC where all of the elements are

    or undef.

    Defined at line 1416 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • unsigned int replaceDominatedUsesWithIf (Value * From, Value * To, DominatorTree & DT, const BasicBlockEdge & Edge, function_ref<bool (const Use &, const Value *)> ShouldReplace)

    Replace each use of 'From' with 'To' if that use is dominated by

    the given edge and the callback ShouldReplace returns true. Returns the

    number of replacements made.

    Defined at line 3256 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * getRecurrenceIdentity (RecurKind K, Type * Tp, FastMathFlags FMF)

    Given information about an recurrence kind, return the identity

    for the

    .vector.reduce.* used to generate it.

    Defined at line 1445 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • SmallVector createUnaryMask (ArrayRef Mask, unsigned int NumElts)

    Given a shuffle mask for a binary shuffle, create the equivalent shuffle

    mask assuming both operands are identical. This assumes that the unary

    shuffle will use elements from operand 0 (operand 1 will be unused).

    Defined at line 1190 of file llvm/lib/Analysis/VectorUtils.cpp

  • void emitDWARF5AccelTable (AsmPrinter * Asm, DWARF5AccelTable & Contents, ArrayRef<std::variant<MCSymbol *, uint64_t>> CUs, llvm::function_ref<std::optional<DWARF5AccelTable::UnitIndexAndEncoding> (const DWARF5AccelTableData &)> getIndexForEntry)

    Emit a DWARFv5 Accelerator Table consisting of entries in the specified

    AccelTable. The

    contains either symbols keeping offsets to the

    start of compilation unit, either offsets to the start of compilation

    unit themselves.

    Defined at line 710 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp

  • bool isBuildVectorConstantSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, int64_t SplatValue, bool AllowUndef)

    Return true if the specified instruction is a G_BUILD_VECTOR or

    G_BUILD_VECTOR_TRUNC where all of the elements are

    or undef.

    Defined at line 1432 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Value * createMinMaxOp (IRBuilderBase & Builder, RecurKind RK, Value * Left, Value * Right)

    Returns a Min/Max operation corresponding to MinMaxRecurrenceKind.

    The Builder's fast-math-flags must be set to propagate the expected values.

    Defined at line 1256 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • unsigned int replaceDominatedUsesWithIf (Value * From, Value * To, DominatorTree & DT, const BasicBlock * BB, function_ref<bool (const Use &, const Value *)> ShouldReplace)

    Replace each use of 'From' with 'To' if that use is dominated by

    the end of the given BasicBlock and the callback ShouldReplace returns true.

    Returns the number of replacements made.

    Defined at line 3265 of file llvm/lib/Transforms/Utils/Local.cpp

  • shared_ptr CreateZ3Solver ()

    Convenience method to create and Z3Solver object

    Defined at line 982 of file llvm/lib/Support/Z3Solver.cpp

  • Value * getOrderedReduction (IRBuilderBase & Builder, Value * Acc, Value * Src, unsigned int Op, RecurKind MinMaxKind)

    Generates an ordered vector reduction using extracts to reduce the value.

    Defined at line 1274 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const T & OneElt)

    @

    {

    Deduction guide to construct an ArrayRef from a single element.

    Defined at line of file

  • bool isBuildVectorConstantSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, const APInt & SplatValue, bool AllowUndef)

    Return true if the specified instruction is a G_BUILD_VECTOR or

    G_BUILD_VECTOR_TRUNC where all of the elements are

    or undef.

    Defined at line 1439 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • unsigned int replaceDominatedUsesWithIf (Value * From, Value * To, DominatorTree & DT, const Instruction * I, function_ref<bool (const Use &, const Value *)> ShouldReplace)

    Replace each use of 'From' with 'To' if that use is dominated by

    the given instruction and the callback ShouldReplace returns true. Returns

    the number of replacements made.

    Defined at line 3274 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * concatenateVectors (IRBuilderBase & Builder, ArrayRef Vecs)

    Concatenate a list of vectors.

    This function generates code that concatenate the vectors in

    into a

    single large vector. The number of vectors should be greater than one, and

    their element types should be the same. The number of elements in the

    vectors should also be the same; however, if the last vector has fewer

    elements, it will be padded with undefs.

    Defined at line 1232 of file llvm/lib/Analysis/VectorUtils.cpp

  • void getUnderlyingObjects (const Value * V, SmallVectorImpl<const Value *> & Objects, const LoopInfo * LI, unsigned int MaxLookup)

    This method is similar to getUnderlyingObject except that it can

    look through phi and select instructions and return multiple objects.

    If LoopInfo is passed, loop phis are further analyzed. If a pointer

    accesses different objects in each iteration, we don't look through the

    phi node. E.g. consider this loop nest:

    int **A;

    for (i)

    for (j) {

    A[i][j] = A[i-1][j] * B[j]

    }

    This is transformed by Load-PRE to stash away A[i] for the next iteration

    of the outer loop:

    Curr = A[0]; // Prev_0

    for (i: 1..N) {

    Prev = Curr; // Prev = PHI (Prev_0, Curr)

    Curr = A[i];

    for (j: 0..N) {

    Curr[j] = Prev[j] * B[j]

    }

    }

    Since A[i] and A[i-1] are independent pointers, getUnderlyingObjects

    should not assume that Curr and Prev share the same underlying object thus

    it shouldn't look through the phi above.

    Defined at line 7000 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const T * data, size_t length)

    Deduction guide to construct an ArrayRef from a pointer and length

    Defined at line of file

  • void registerCodeGenCallback (PassInstrumentationCallbacks & PIC, TargetMachine & )

    Defined at line 536 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • Instruction * SplitBlockAndInsertIfElse (Value * Cond, ilist_iterator_w_bits SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ElseBlock)

    Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false

    path of the branch.

    Defined at line 1590 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Instruction * SplitBlockAndInsertIfElse (Value * Cond, int SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ElseBlock)

    Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false

    path of the branch.

    Defined at line of file

  • Value * getShuffleReduction (IRBuilderBase & Builder, Value * Src, unsigned int Op, ReductionShuffle RS, RecurKind MinMaxKind)

    Generates a vector reduction using shufflevectors to reduce the value.

    Fast-math-flags are propagated using the IRBuilder's setting.

    Defined at line 1299 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const T * data, const T * end)

    Deduction guide to construct an ArrayRef from a range

    Defined at line of file

  • bool isBuildVectorAllZeros (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndef)

    Return true if the specified instruction is a G_BUILD_VECTOR or

    G_BUILD_VECTOR_TRUNC where all of the elements are 0 or undef.

    Defined at line 1488 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool maskIsAllZeroOrUndef (Value * Mask)

    Given a mask vector of i1, Return true if all of the elements of this

    predicate mask are known to be false or undef. That is, return true if all

    lanes can be assumed inactive.

    Defined at line 1260 of file llvm/lib/Analysis/VectorUtils.cpp

  • FunctionPass * createInterleavedAccessPass ()

    InterleavedAccess Pass - This pass identifies and matches interleaved

    memory accesses to target specific intrinsics.

    Defined at line 203 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const SmallVectorImpl<T> & Vec)

    Deduction guide to construct an ArrayRef from a SmallVector

    Defined at line of file

  • bool getUnderlyingObjectsForCodeGen (const Value * V, SmallVectorImpl<Value *> & Objects)

    This is a wrapper around getUnderlyingObjects and adds support for basic

    ptrtoint+arithmetic+inttoptr sequences.

    Defined at line 7115 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool canConstantBeExtended (const APInt * C, Type * NarrowType, PartialReductionExtendKind ExtKind)

    Check if a constant

    can be safely treated as having been extended

    from a narrower type with the given extension kind.

    Defined at line 1717 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • template <typename T, unsigned N>
    ArrayRef<T> <deduction guide for ArrayRef> (const SmallVector<T, N> & Vec)

    Deduction guide to construct an ArrayRef from a SmallVector

    Defined at line of file

  • bool maskIsAllOneOrUndef (Value * Mask)

    Given a mask vector of i1, Return true if all of the elements of this

    predicate mask are known to be true or undef. That is, return true if all

    lanes can be assumed active.

    Defined at line 1286 of file llvm/lib/Analysis/VectorUtils.cpp

  • FunctionPass * createInterleavedLoadCombinePass ()

    InterleavedLoadCombines Pass - This pass identifies interleaved loads and

    combines them into wide loads detectable by InterleavedAccessPass

    Defined at line 1371 of file llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp

  • bool callsGCLeafFunction (const CallBase * Call, const TargetLibraryInfo & TLI)

    Return true if this call calls a gc leaf function.

    A leaf function is a function that does not safepoint the thread during its

    execution. During a call or invoke to such a function, the callers stack

    does not have to be made parseable.

    Most passes can and should ignore this information, and it is only used

    during lowering by the GC infrastructure.

    Defined at line 3283 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool isBuildVectorAllOnes (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndef)

    Return true if the specified instruction is a G_BUILD_VECTOR or

    G_BUILD_VECTOR_TRUNC where all of the elements are ~0 or undef.

    Defined at line 1494 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • AllocaInst * findAllocaForValue (Value * V, bool OffsetZero)

    Returns unique alloca where the value comes from, or nullptr.

    If OffsetZero is true check that V points to the begining of the alloca.

    Defined at line 7148 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * createSimpleReduction (IRBuilderBase & B, Value * Src, RecurKind RdxKind)

    Create a reduction of the given vector. The reduction operation

    is described by the

    parameter. min/max reductions require

    additional information supplied in

    Fast-math-flags are propagated using the IRBuilder's setting.

    Defined at line 1453 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const int & Vec)

    Deduction guide to construct an ArrayRef from a std::vector

    Defined at line of file

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const std::vector<T> & Vec)

    Deduction guide to construct an ArrayRef from a std::vector

    Defined at line of file

  • void dumpTypeQualifiedName (const DWARFDie & DIE, raw_ostream & OS)

    Defined at line 865 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • void dumpTypeUnqualifiedName (const DWARFDie & DIE, raw_ostream & OS, std::string * OriginalFullName)

    Defined at line 869 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • bool maskContainsAllOneOrUndef (Value * Mask)

    Given a mask vector of i1, Return true if any of the elements of this

    predicate mask are known to be true or undef. That is, return true if at

    least one lane can be assumed active.

    Defined at line 1312 of file llvm/lib/Analysis/VectorUtils.cpp

  • ModulePass * createLowerEmuTLSPass ()

    LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all

    TLS variables for the emulated TLS model.

    Defined at line 84 of file llvm/lib/CodeGen/LowerEmuTLS.cpp

  • Value * createSimpleReduction (IRBuilderBase & B, Value * Src, RecurKind RdxKind, Value * Mask, Value * EVL)

    Overloaded function to generate vector-predication intrinsics for

    reduction.

    Defined at line 1491 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <typename T, std::size_t N>
    ArrayRef<T> <deduction guide for ArrayRef> (const std::array<T, N> & Vec)

    Deduction guide to construct an ArrayRef from a std::array

    Defined at line of file

  • ModulePass * createDXILResourceTypeWrapperPassPass ()

    Defined at line 1135 of file llvm/lib/Analysis/DXILResource.cpp

  • void copyNonnullMetadata (const LoadInst & OldLI, MDNode * N, LoadInst & NewLI)

    Copy a nonnull metadata node to a new load instruction.

    This handles mapping it to range metadata if the new load is an integer

    load instead of a pointer load.

    Defined at line 3312 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool onlyUsedByLifetimeMarkers (const Value * V)

    Return true if the only users of this pointer are lifetime markers.

    Defined at line 7211 of file llvm/lib/Analysis/ValueTracking.cpp

  • APInt possiblyDemandedEltsInMask (Value * Mask)

    Given a mask vector of the form

    <Y

    x i1>, return an APInt (of bitwidth Y)

    for each lane which may be active.

    Defined at line 1339 of file llvm/lib/Analysis/VectorUtils.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (const ArrayRef<T> & Vec)

    Deduction guide to construct an ArrayRef from an ArrayRef (const)

    Defined at line of file

  • bool isConstantOrConstantVector (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowFP, bool AllowOpaqueConstants)

    Return true if the specified instruction is known to be a constant, or a

    vector of constants.

    If

    is true, this will consider G_FCONSTANT in addition to

    G_CONSTANT. If

    is true, constant-like instructions

    such as G_GLOBAL_VALUE will also be considered.

    Defined at line 1551 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • ModulePass * createPreISelIntrinsicLoweringPass ()

    This pass lowers the

    @

    llvm.load.relative and

    @

    llvm.objc.* intrinsics to

    instructions. This is unsafe to do earlier because a pass may combine the

    constant initializer into the load, which may result in an overflowing

    evaluation.

    Defined at line 812 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • Value * createAnyOfReduction (IRBuilderBase & B, Value * Src, Value * InitVal, PHINode * OrigPhi)

    Create a reduction of the given vector

    for a reduction of kind

    RecurKind::AnyOf. The start value of the reduction is

    Defined at line 1357 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool onlyUsedByLifetimeMarkersOrDroppableInsts (const Value * V)

    Return true if the only users of this pointer are lifetime markers or

    droppable instructions.

    Defined at line 7215 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <typename T>
    ArrayRef<T> <deduction guide for ArrayRef> (ArrayRef<T> & Vec)

    Deduction guide to construct an ArrayRef from an ArrayRef

    Defined at line of file

  • raw_ostream & operator<< (raw_ostream & OS, const ValueLatticeElement & Val)

    Defined at line 112 of file llvm/lib/Analysis/ValueLattice.cpp

  • ChangeStatus operator| (ChangeStatus l, ChangeStatus r)

    Logic operators for the change status enum class.

    {

    Defined at line 184 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • void copyRangeMetadata (const DataLayout & DL, const LoadInst & OldLI, MDNode * N, LoadInst & NewLI)

    Copy a range metadata node to a new load instruction.

    This handles mapping it to nonnull metadata if the new load is a pointer

    load instead of an integer load and the range doesn't cover null.

    Defined at line 3337 of file llvm/lib/Transforms/Utils/Local.cpp

  • ChangeStatus & operator|= (ChangeStatus & l, ChangeStatus r)

    Defined at line 187 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • template <typename T, size_t N>
    ArrayRef<T> <deduction guide for ArrayRef> (const T (&)[N] Arr)

    Deduction guide to construct an ArrayRef from a C array.

    Defined at line of file

  • ChangeStatus operator& (ChangeStatus l, ChangeStatus r)

    Defined at line 191 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • Value * createFindLastIVReduction (IRBuilderBase & B, Value * Src, RecurKind RdxKind, Value * Start, Value * Sentinel)

    Create a reduction of the given vector

    for a reduction of the

    kind RecurKind::FindLastIV.

    Defined at line 1387 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • ChangeStatus & operator&= (ChangeStatus & l, ChangeStatus r)

    Defined at line 194 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • Pass * createGlobalMergePass (const TargetMachine * TM, unsigned int MaximalOffset, bool OnlyOptimizeForSize, bool MergeExternalByDefault, bool MergeConstantByDefault, bool MergeConstAggressiveByDefault)

    GlobalMerge - This pass merges internal (by default) globals into structs

    to enable reuse of a base pointer by indexed addressing modes.

    It can also be configured to focus on size optimizations only.

    Defined at line 766 of file llvm/lib/CodeGen/GlobalMerge.cpp

  • void dropDebugUsers (Instruction & I)

    Remove the debug intrinsic instructions for the given instruction.

    Defined at line 3361 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool isNullOrNullSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndefs)

    Return true if the value is a constant 0 integer or a splatted vector of a

    constant 0 integer (with no undefs if

    is false). This will

    handle G_BUILD_VECTOR and G_BUILD_VECTOR_TRUNC as truncation is not an issue

    for null values.

    Defined at line 1595 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool isNotCrossLaneOperation (const Instruction * I)

    Return true if the instruction doesn't potentially cross vector lanes. This

    condition is weaker than checking that the instruction is lanewise: lanewise

    means that the same operation is splatted across all lanes, but we also

    include the case where there is a different operation on each lane, as long

    as the operation only uses data from that lane. An example of an operation

    that is not lanewise, but doesn't cross vector lanes is insertelement.

    Defined at line 7220 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * createOrderedReduction (IRBuilderBase & B, RecurKind RdxKind, Value * Src, Value * Start)

    Create an ordered reduction intrinsic using the given recurrence

    kind

    Defined at line 1506 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <class T>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (T & OneElt)

    @

    {

    Deduction guide to construct a `MutableArrayRef` from a single element

    Defined at line of file

  • void SplitBlockAndInsertIfThenElse (Value * Cond, int SplitBefore, Instruction ** ThenTerm, Instruction ** ElseTerm, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)

    SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen,

    but also creates the ElseBlock.

    Before:

    Head

    SplitBefore

    Tail

    After:

    Head

    if (Cond)

    ThenBlock

    else

    ElseBlock

    SplitBefore

    Tail

    Updates DT if given.

    Defined at line of file

  • void SplitBlockAndInsertIfThenElse (Value * Cond, ilist_iterator_w_bits SplitBefore, Instruction ** ThenTerm, Instruction ** ElseTerm, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)

    SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen,

    but also creates the ElseBlock.

    Before:

    Head

    SplitBefore

    Tail

    After:

    Head

    if (Cond)

    ThenBlock

    else

    ElseBlock

    SplitBefore

    Tail

    Updates DT if given.

    Defined at line 1603 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void hoistAllInstructionsInto (BasicBlock * DomBlock, Instruction * InsertPt, BasicBlock * BB)

    Hoist all of the instructions in the

    to the dominant block

    by moving its instructions to the insertion point

    The moved instructions receive the insertion point debug location values

    (DILocations) and their debug intrinsic instructions are removed.

    Defined at line 3368 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool isAllOnesOrAllOnesSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndefs)

    Return true if the value is a constant -1 integer or a splatted vector of a

    constant -1 integer (with no undefs if

    is false).

    Defined at line 1613 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createSafeStackPass ()

    This pass splits the stack into a safe stack and an unsafe stack to

    protect against stack-based overflow vulnerabilities.

    Defined at line 990 of file llvm/lib/CodeGen/SafeStack.cpp

  • Value * createOrderedReduction (IRBuilderBase & B, RecurKind RdxKind, Value * Src, Value * Start, Value * Mask, Value * EVL)

    Overloaded function to generate vector-predication intrinsics for ordered

    reduction.

    Defined at line 1516 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • MachineInstrBuilder BuildMI (MachineFunction & MF, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, Register Reg, const MDNode * Variable, const MDNode * Expr)

    This version of the builder builds a DBG_VALUE intrinsic

    for either a value in a register or a register-indirect

    address. The convention is that a DBG_VALUE is indirect iff the

    second operand is an immediate.

    Defined at line 2364 of file llvm/lib/CodeGen/MachineInstr.cpp

  • template <class T>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (T * data, size_t length)

    Deduction guide to construct a `MutableArrayRef` from a pointer and

    length.

    Defined at line of file

  • DIExpression * getExpressionForConstant (DIBuilder & DIB, const Constant & C, Type & Ty)

    Given a constant, create a debug information expression.

    Defined at line 3414 of file llvm/lib/Transforms/Utils/Local.cpp

  • template <class T>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (SmallVectorImpl<T> & Vec)

    Deduction guide to construct a `MutableArrayRef` from a `SmallVector`.

    Defined at line of file

  • void remapDebugVariable (ValueToValueMapTy & Mapping, Instruction * Inst)

    Remap the operands of the debug records attached to

    and the

    operands of

    itself if it's a debug intrinsic.

    Defined at line 3456 of file llvm/lib/Transforms/Utils/Local.cpp

  • void remapDebugVariable (int & Mapping, Instruction * Inst)

    Remap the operands of the debug records attached to

    and the

    operands of

    itself if it's a debug intrinsic.

    Defined at line of file

  • MachineInstrBuilder BuildMI (MachineFunction & MF, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, ArrayRef<MachineOperand> MOs, const MDNode * Variable, const MDNode * Expr)

    This version of the builder builds a DBG_VALUE or DBG_VALUE_LIST intrinsic

    for a MachineOperand.

    Defined at line 2380 of file llvm/lib/CodeGen/MachineInstr.cpp

  • template <class T, unsigned N>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (SmallVector<T, N> & Vec)

    Defined at line of file

  • FunctionPass * createRegUsageInfoCollector ()

    This pass is executed POST-RA to collect which physical registers are

    preserved by given machine function.

    Defined at line 82 of file llvm/lib/CodeGen/RegUsageInfoCollector.cpp

  • void propagateIRFlags (Value * I, ArrayRef VL, Value * OpValue, bool IncludeWrapFlags)

    Get the intersection (logical and) of all of the potential IR flags

    of each scalar operation (VL) that will be converted into a vector (I).

    If OpValue is non-null, we only consider operations similar to OpValue

    when intersecting.

    Flag set: NSW, NUW (if IncludeWrapFlags is true), exact, and all of

    fast-math.

    Defined at line 1533 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • ValueProfRecord * getFirstValueProfRecord (ValueProfData * VPD)

    Return the first

    instance.

    Defined at line 611 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • template <class T>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (int & Vec)

    Deduction guide to construct a `MutableArrayRef` from a `std::vector`.

    Defined at line of file

  • template <class T>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (std::vector<T> & Vec)

    Deduction guide to construct a `MutableArrayRef` from a `std::vector`.

    Defined at line of file

  • ValueProfRecord * getValueProfRecordNext (ValueProfRecord * VPR)

    Use this method to advance to the next

    Defined at line 600 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • FunctionPass * createRegUsageInfoPropPass ()

    Return a MachineFunction pass that identifies call sites

    and propagates register usage information of callee to caller

    if available with PysicalRegisterUsageInfo pass.

    Defined at line 181 of file llvm/lib/CodeGen/RegUsageInfoPropagate.cpp

  • InstrProfValueData * getValueProfRecordValueData (ValueProfRecord * VPR)

    Return the pointer to the start of value data array.

    Defined at line 579 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • template <class T, std::size_t N>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (std::array<T, N> & Vec)

    Deduction guide to construct a `MutableArrayRef` from a `std::array`.

    Defined at line of file

  • bool isKnownNegativeInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)

    Returns true if we can prove that

    is defined and always negative in

    loop

    Defined at line 1553 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • uint32_t getValueProfRecordHeaderSize (uint32_t NumValueSites)

    Return the

    header size including the

    padding bytes.

    Defined at line 557 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, Register Reg, const MDNode * Variable, const MDNode * Expr)

    This version of the builder builds a DBG_VALUE intrinsic

    for either a value in a register or a register-indirect

    address and inserts it at position I.

    Defined at line 2414 of file llvm/lib/CodeGen/MachineInstr.cpp

  • FunctionPass * createPBQPRegisterAllocator (char * customPassID)

    Create a PBQP register allocator instance.

    Defined at line 949 of file llvm/lib/CodeGen/RegAllocPBQP.cpp

  • template <typename T, size_t N>
    MutableArrayRef<T> <deduction guide for MutableArrayRef> (T (&)[N] Arr)

    Deduction guide to construct a `MutableArrayRef` from a C array.

    Defined at line of file

  • FunctionPass * createFreeMachineFunctionPass ()

    This pass frees the memory occupied by the MachineFunction.

    Defined at line 149 of file llvm/lib/CodeGen/MachineModuleInfo.cpp

  • bool isKnownNonNegativeInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)

    Returns true if we can prove that

    is defined and always non-negative in

    loop

    Defined at line 1560 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • std::optional<RegOrConstant> getVectorSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI)

    Examples:

    If called on the G_BUILD_VECTOR above, this will return a RegOrConstant

    containing %reg.

    In the above case, this will return a RegOrConstant containing 4.

    Code

                                                    
                                                           %reg = COPY $physreg
                                                           %reg_splat = G_BUILD_VECTOR %reg, %reg, ..., %reg
                                                    
                                                
                                                    
                                                           %cst = G_CONSTANT iN 4
                                                           %constant_splat = G_BUILD_VECTOR %cst, %cst, ..., %cst
                                                    
                                                

    Defined at line 1500 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • ModulePass * createGlobalMergeFuncPass ()

    This pass performs merging similar functions globally.

    Defined at line 593 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • bool isKnownPositiveInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)

    Returns true if we can prove that

    is defined and always positive in

    loop

    Defined at line 1567 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool recognizeBSwapOrBitReverseIdiom (Instruction * I, bool MatchBSwaps, bool MatchBitReversals, SmallVectorImpl<Instruction *> & InsertedInsts)

    Try to match a bswap or bitreverse idiom.

    If an idiom is matched, an intrinsic call is inserted before

    Any added

    instructions are returned in

    They will all have been added

    to a basic block.

    A bitreverse idiom normally requires around 2*BW nodes to be searched (where

    BW is the bitwidth of the integer type). A bswap idiom requires anywhere up

    to BW / 4 nodes to be searched, so is significantly faster.

    This function returns true on a successful match or false otherwise.

    Defined at line 3761 of file llvm/lib/Transforms/Utils/Local.cpp

  • MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, ArrayRef<MachineOperand> MOs, const MDNode * Variable, const MDNode * Expr)

    This version of the builder builds a DBG_VALUE, DBG_INSTR_REF, or

    DBG_VALUE_LIST intrinsic for a machine operand and inserts it at position I.

    Defined at line 2425 of file llvm/lib/CodeGen/MachineInstr.cpp

  • ModulePass * createMachineOutlinerPass (RunOutliner RunOutlinerMode)

    This pass performs outlining on machine instructions directly before

    printing assembly.

    Defined at line 596 of file llvm/lib/CodeGen/MachineOutliner.cpp

  • bool isConstantOrConstantVector (MachineInstr & MI, const MachineRegisterInfo & MRI)

    Determines if

    defines a constant integer or a build vector of

    constant integers. Treats undef values as constants.

    Defined at line 1534 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool isSafeToSpeculativelyExecute (const Instruction * I, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)

    Return true if the instruction does not have any effects besides

    calculating the result and does not have undefined behavior.

    This method never returns true for an instruction that returns true for

    mayHaveSideEffects; however, this method also does some other checks in

    addition. It checks for undefined behavior, like dividing by zero or

    loading from an invalid pointer (but not for undefined results, like a

    shift with a shift amount larger than the width of the result). It checks

    for malloc and alloca because speculatively executing them might cause a

    memory leak. It also returns false for instructions related to control

    flow, specifically terminators and PHI nodes.

    If the CtxI is specified this method performs context-sensitive analysis

    and returns true if it is safe to execute the instruction immediately

    before the CtxI. If the instruction has (transitive) operands that don't

    dominate CtxI, the analysis is performed under the assumption that these

    operands will also be speculated to a point before CxtI.

    If the CtxI is NOT specified this method only looks at the instruction

    itself and its operands, so if this method returns true, it is safe to

    move the instruction as long as the correct dominance relationships for

    the operands and users hold.

    If

    is true, the information from non-constant operands

    will be taken into account.

    If

    is true, UB-implying attributes will be ignored.

    The caller is responsible for correctly propagating them after hoisting.

    This method can return true for instructions that read memory;

    for such instructions, moving them may change the resulting value.

    Defined at line 7228 of file llvm/lib/Analysis/ValueTracking.cpp

  • FunctionPass * createExpandReductionsPass ()

    This pass expands the reduction intrinsics into sequences of shuffles.

    Defined at line 182 of file llvm/lib/CodeGen/ExpandReductions.cpp

  • bool isKnownNonPositiveInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)

    Returns true if we can prove that

    is defined and always non-positive in

    loop

    Defined at line 1574 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • LegalizeResult createLibcall (MachineIRBuilder & MIRBuilder, const char * Name, const CallLowering::ArgInfo & Result, ArrayRef<CallLowering::ArgInfo> Args, CallingConv::ID CC, LostDebugLocObserver & LocObserver, MachineInstr * MI)

    Helper function that creates a libcall to the given

    using the given

    calling convention

    Defined at line 583 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • MachineInstr * buildDbgValueForSpill (MachineBasicBlock & BB, int I, const MachineInstr & Orig, int FrameIndex, Register SpillReg)

    Clone a DBG_VALUE whose value has been spilled to FrameIndex.

    Defined at line 2470 of file llvm/lib/CodeGen/MachineInstr.cpp

  • std::optional<APInt> isConstantOrConstantSplatVector (MachineInstr & MI, const MachineRegisterInfo & MRI)

    Determines if

    defines a constant integer or a splat vector of

    constant integers.

    Defined at line 1570 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createReplaceWithVeclibLegacyPass ()

    This pass replaces intrinsics operating on vector operands with calls to

    the corresponding function in a vector library (e.g., SVML, libmvec).

    Defined at line 283 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • bool cannotBeMaxInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE, bool Signed)

    Returns true if

    is defined and never is equal to signed/unsigned max.

    Defined at line 1592 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void deleteConstant (Constant * C)

    Free memory for a given constant. Assumes the constant has already been

    removed from all relevant maps.

    Defined at line 546 of file llvm/lib/IR/Constants.cpp

  • MachineInstr * buildDbgValueForSpill (MachineBasicBlock & BB, int I, const MachineInstr & Orig, int FrameIndex, const SmallVectorImpl<const MachineOperand *> & SpilledOperands)

    Defined at line 2493 of file llvm/lib/CodeGen/MachineInstr.cpp

  • FunctionPass * createExpandIRInstsPass ()

    Expands large div/rem instructions.

    Defined at line of file

  • bool cannotBeMinInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE, bool Signed)

    Returns true if

    is defined and never is equal to signed/unsigned min.

    Defined at line 1581 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void maybeMarkSanitizerLibraryCallNoBuiltin (CallInst * CI, const TargetLibraryInfo * TLI)

    CodeGen has special handling for some string functions that may replace

    them with target-specific intrinsics. Since that'd skip our interceptors

    in ASan/MSan/TSan/DFSan, and thus make us miss some memory accesses,

    we mark affected calls as NoBuiltin, which will disable optimization

    in CodeGen.

    Defined at line 3865 of file llvm/lib/Transforms/Utils/Local.cpp

  • LegalizeResult createLibcall (MachineIRBuilder & MIRBuilder, Libcall Libcall, const CallLowering::ArgInfo & Result, ArrayRef<CallLowering::ArgInfo> Args, LostDebugLocObserver & LocObserver, MachineInstr * MI)

    Helper function that creates the given libcall.

    Defined at line 630 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • FunctionPass * createExpandMemCmpLegacyPass ()

    This pass expands memcmp() to load/stores.

    Defined at line 1029 of file llvm/lib/CodeGen/ExpandMemCmp.cpp

  • std::optional<APFloat> isConstantOrConstantSplatVectorFP (MachineInstr & MI, const MachineRegisterInfo & MRI)

    Determines if

    defines a float constant integer or a splat vector of

    float constant integers.

    Defined at line 1583 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void SplitBlockAndInsertIfThenElse (Value * Cond, ilist_iterator_w_bits SplitBefore, BasicBlock ** ThenBlock, BasicBlock ** ElseBlock, bool UnreachableThen, bool UnreachableElse, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)

    Split the containing block at the specified instruction - everything before

    SplitBefore stays in the old basic block, and the rest of the instructions

    in the BB are moved to a new block. The two blocks are connected by a

    conditional branch (with value of Cmp being the condition).

    Before:

    Head

    SplitBefore

    Tail

    After:

    Head

    if (Cond)

    TrueBlock

    else

    / FalseBlock

    SplitBefore

    Tail

    If

    is null, the resulting CFG won't contain the TrueBlock. If

    is non-null and points to non-null BasicBlock pointer, that

    block will be inserted as the TrueBlock. Otherwise a new block will be

    created. Likewise for the

    parameter.

    If

    or

    is true, the corresponding newly

    created blocks will end with UnreachableInst, otherwise with branches to

    Tail. The function will not modify existing basic blocks passed to it. The

    caller must ensure that Tail is reachable from Head.

    Returns the newly created blocks in

    and

    Updates DTU and LI if given.

    Defined at line 1618 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void SplitBlockAndInsertIfThenElse (Value * Cond, int SplitBefore, BasicBlock ** ThenBlock, BasicBlock ** ElseBlock, bool UnreachableThen, bool UnreachableElse, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)

    Split the containing block at the specified instruction - everything before

    SplitBefore stays in the old basic block, and the rest of the instructions

    in the BB are moved to a new block. The two blocks are connected by a

    conditional branch (with value of Cmp being the condition).

    Before:

    Head

    SplitBefore

    Tail

    After:

    Head

    if (Cond)

    TrueBlock

    else

    / FalseBlock

    SplitBefore

    Tail

    If

    is null, the resulting CFG won't contain the TrueBlock. If

    is non-null and points to non-null BasicBlock pointer, that

    block will be inserted as the TrueBlock. Otherwise a new block will be

    created. Likewise for the

    parameter.

    If

    or

    is true, the corresponding newly

    created blocks will end with UnreachableInst, otherwise with branches to

    Tail. The function will not modify existing basic blocks passed to it. The

    caller must ensure that Tail is reachable from Head.

    Returns the newly created blocks in

    and

    Updates DTU and LI if given.

    Defined at line of file

  • FunctionPass * createBreakFalseDeps ()

    Creates Break False Dependencies pass.

    Defined at line 107 of file llvm/lib/CodeGen/BreakFalseDeps.cpp

  • void updateDbgValueForSpill (MachineInstr & Orig, int FrameIndex, Register Reg)

    Update a DBG_VALUE whose value has been spilled to FrameIndex. Useful when

    modifying an instruction in place while iterating over a basic block.

    Defined at line 2515 of file llvm/lib/CodeGen/MachineInstr.cpp

  • LegalizeResult createMemLibcall (MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI, MachineInstr & MI, LostDebugLocObserver & LocObserver)

    Create a libcall to memcpy et al.

    Defined at line 746 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • FunctionPass * createIndirectBrExpandPass ()

    This pass expands indirectbr instructions.

    Defined at line 98 of file llvm/lib/CodeGen/IndirectBrExpandPass.cpp

  • bool matchUnaryPredicate (const MachineRegisterInfo & MRI, Register Reg, std::function<bool (const Constant *)> Match, bool AllowUndefs)

    Attempt to match a unary predicate against a scalar/splat constant or every

    element of a constant G_BUILD_VECTOR. If

    is null, the source

    value was undef.

    Defined at line 1628 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool canReplaceOperandWithVariable (const Instruction * I, unsigned int OpIdx)

    Given an instruction, is it legal to set operand OpIdx to a non-constant

    value?

    Defined at line 3875 of file llvm/lib/Transforms/Utils/Local.cpp

  • FunctionPass * createCFIFixup ()

    Creates CFI Fixup pass.

    Defined at line 95 of file llvm/lib/CodeGen/CFIFixup.cpp

  • hash_code hash_value (const APInt & Arg)

    Overload to compute a hash_code for an APInt value.

    Defined at line 617 of file llvm/lib/Support/APInt.cpp

  • FunctionPass * createCFIInstrInserter ()

    Creates CFI Instruction Inserter pass.

    Defined at line 153 of file llvm/lib/CodeGen/CFIInstrInserter.cpp

  • bool isConstTrueVal (const TargetLowering & TLI, int64_t Val, bool IsVector, bool IsFP)

    Returns true if given the TargetLowering's boolean contents information,

    the value

    contains a true value.

    Defined at line 1660 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • int rewriteLoopExitValues (Loop * L, LoopInfo * LI, TargetLibraryInfo * TLI, ScalarEvolution * SE, const TargetTransformInfo * TTI, SCEVExpander & Rewriter, DominatorTree * DT, ReplaceExitVal ReplaceExitValue, SmallVector<WeakTrackingVH, 16> & DeadInsts)

    If the final value of any expressions that are recurrent in the loop can

    be computed, substitute the exit values from the loop into any instructions

    outside of the loop that use the final values of the current expressions.

    Return the number of loop exit values that have been replaced, and the

    corresponding phi node will be added to DeadInsts.

    Defined at line 1714 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • FunctionPass * createExpandIRInstsPass (CodeGenOptLevel )

    Expands floating point instructions.

    Defined at line of file

  • Value * invertCondition (Value * Condition)

    Invert the given true/false value, possibly reusing an existing copy.

    Defined at line 3965 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool isConstFalseVal (const TargetLowering & TLI, int64_t Val, bool IsVector, bool IsFP)

    Defined at line 1673 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createCFGuardLongjmpPass ()

    Creates CFGuard longjmp target identification pass.

    Defined at line 60 of file llvm/lib/CodeGen/CFGuardLongjmp.cpp

  • FunctionPass * createEHContGuardTargetsPass ()

    Creates Windows EH Continuation Guard target identification pass.

    Defined at line 58 of file llvm/lib/CodeGen/EHContGuardTargets.cpp

  • int64_t getICmpTrueVal (const TargetLowering & TLI, bool IsVector, bool IsFP)

    Returns an integer representing true, as defined by the

    TargetBooleanContents.

    Defined at line 1685 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • std::pair<Instruction *, Value *> SplitBlockAndInsertSimpleForLoop (Value * End, int SplitBefore)

    Insert a for (int i = 0; i

    <

    End; i++) loop structure (with the exception

    that

    is assumed > 0, and thus not checked on entry) at

    Returns the first insert point in the loop body, and the

    PHINode for the induction variable (i.e. "i" above).

    Defined at line of file

  • std::pair<Instruction *, Value *> SplitBlockAndInsertSimpleForLoop (Value * End, ilist_iterator_w_bits SplitBefore)

    Insert a for (int i = 0; i

    <

    End; i++) loop structure (with the exception

    that

    is assumed > 0, and thus not checked on entry) at

    Returns the first insert point in the loop body, and the

    PHINode for the induction variable (i.e. "i" above).

    Defined at line 1699 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool inferAttributesFromOthers (Function & F)

    If we can infer one attribute from another on the declaration of a

    function, explicitly materialize the maximal set in the IR.

    Defined at line 3999 of file llvm/lib/Transforms/Utils/Local.cpp

  • void dumpRegSetPressure (ArrayRef<unsigned int> SetPressure, const TargetRegisterInfo * TRI)

    Defined at line 81 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • FunctionPass * createHardwareLoopsLegacyPass ()

    Create Hardware Loop pass.

    Defined at line 598 of file llvm/lib/CodeGen/HardwareLoops.cpp

  • template <typename RangeT>
    void appendLoopsToWorklist (RangeT && , SmallPriorityWorklist<Loop *, 4> & )

    Utility that implements appending of loops onto a worklist given a range.

    We want to process loops in postorder, but the worklist is a LIFO data

    structure, so we append to it in *reverse* postorder.

    For trees, a preorder traversal is a viable reverse postorder, so we

    actually append using a preorder walk algorithm.

    Defined at line 1953 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void saveUsesAndErase (MachineInstr & MI, MachineRegisterInfo & MRI, LostDebugLocObserver * LocObserver, SmallInstListTy & DeadInstChain)

    Defined at line 1697 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createPseudoProbeInserter ()

    This pass inserts pseudo probe annotation for callsite profiling.

    Defined at line 148 of file llvm/lib/CodeGen/PseudoProbeInserter.cpp

  • void eraseInstrs (ArrayRef<MachineInstr *> DeadInstrs, MachineRegisterInfo & MRI, LostDebugLocObserver * LocObserver)

    Defined at line 1711 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool isSafeToSpeculativelyExecuteWithOpcode (unsigned int Opcode, const Instruction * Inst, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)

    This returns the same result as isSafeToSpeculativelyExecute if Opcode is

    the actual opcode of Inst. If the provided and actual opcode differ, the

    function (virtually) overrides the opcode of Inst with the provided

    Opcode. There are come constraints in this case:

    * If Opcode has a fixed number of operands (eg, as binary operators do),

    then Inst has to have at least as many leading operands. The function

    will ignore all trailing operands beyond that number.

    * If Opcode allows for an arbitrary number of operands (eg, as CallInsts

    do), then all operands are considered.

    * The virtual instruction has to satisfy all typing rules of the provided

    Opcode.

    * This function is pessimistic in the following sense: If one actually

    materialized the virtual instruction, then isSafeToSpeculativelyExecute

    may say that the materialized instruction is speculatable whereas this

    function may have said that the instruction wouldn't be speculatable.

    This behavior is a shortcoming in the current implementation and not

    intentional.

    Defined at line 7237 of file llvm/lib/Analysis/ValueTracking.cpp

  • FunctionPass * createTypePromotionLegacyPass ()

    Create IR Type Promotion pass.

    Defined at line 1045 of file llvm/lib/CodeGen/TypePromotion.cpp

  • void eraseInstr (MachineInstr & MI, MachineRegisterInfo & MRI, LostDebugLocObserver * LocObserver)

    Defined at line 1726 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • template <typename RangeT>
    void appendReversedLoopsToWorklist (RangeT && , SmallPriorityWorklist<Loop *, 4> & )

    Utility that implements appending of loops onto a worklist given a range.

    It has the same behavior as appendLoopsToWorklist, but assumes the range of

    loops has already been reversed, so it processes loops in the given order.

    Defined at line 1928 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void SplitBlockAndInsertForEachLane (ElementCount EC, Type * IndexTy, ilist_iterator_w_bits InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)

    Utility function for performing a given action on each lane of a vector

    with

    elements. To simplify porting legacy code, this defaults to

    unrolling the implied loop for non-scalable element counts, but this is

    not considered to be part of the contract of this routine, and is

    expected to change in the future. The callback takes as arguments an

    IRBuilder whose insert point is correctly set for instantiating the

    given index, and a value which is (at runtime) the index to access.

    This index *may* be a constant.

    Defined at line 1727 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void SplitBlockAndInsertForEachLane (ElementCount EC, Type * IndexTy, int InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)

    Utility function for performing a given action on each lane of a vector

    with

    elements. To simplify porting legacy code, this defaults to

    unrolling the implied loop for non-scalable element counts, but this is

    not considered to be part of the contract of this routine, and is

    expected to change in the future. The callback takes as arguments an

    IRBuilder whose insert point is correctly set for instantiating the

    given index, and a value which is (at runtime) the index to access.

    This index *may* be a constant.

    Defined at line of file

  • FunctionPass * createMIRAddFSDiscriminatorsPass (FSDiscriminatorPass P)

    Add Flow Sensitive Discriminators. PassNum specifies the

    sequence number of this pass (starting from 1).

    Defined at line 51 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp

  • void salvageDebugInfo (const MachineRegisterInfo & MRI, MachineInstr & MI)

    Assuming the instruction

    is going to be deleted, attempt to salvage

    debug users of

    by writing the effect of

    in a DIExpression.

    Defined at line 1731 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createMIRProfileLoaderPass (basic_string File, basic_string RemappingFile, FSDiscriminatorPass P, IntrusiveRefCntPtr<vfs::FileSystem> FS)

    Read Flow Sensitive Profile.

    Defined at line 81 of file llvm/lib/CodeGen/MIRSampleProfile.cpp

  • bool isPreISelGenericFloatingPointOpcode (unsigned int Opc)

    Returns whether opcode

    is a pre-isel generic floating-point opcode,

    having only floating-point operands.

    Defined at line 1750 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • bool mayHaveNonDefUseDependency (const Instruction & I)

    Returns true if the result or effects of the given instructions

    depend values not reachable through the def use graph.

    * Memory dependence arises for example if the instruction reads from

    memory or may produce effects or undefined behaviour. Memory dependent

    instructions generally cannot be reorderd with respect to other memory

    dependent instructions.

    * Control dependence arises for example if the instruction may fault

    if lifted above a throwing call or infinite loop.

    Defined at line 7344 of file llvm/lib/Analysis/ValueTracking.cpp

  • ModulePass * createDebugifyMachineModulePass ()

    Creates MIR Debugify pass.

    Defined at line 208 of file llvm/lib/CodeGen/MachineDebugify.cpp

  • void SplitBlockAndInsertForEachLane (Value * End, int InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)

    Utility function for performing a given action on each lane of a vector

    with

    effective length. EVL is assumed > 0. To simplify porting legacy

    code, this defaults to unrolling the implied loop for non-scalable element

    counts, but this is not considered to be part of the contract of this

    routine, and is expected to change in the future. The callback takes as

    arguments an IRBuilder whose insert point is correctly set for instantiating

    the given index, and a value which is (at runtime) the index to access. This

    index *may* be a constant.

    Defined at line of file

  • void SplitBlockAndInsertForEachLane (Value * End, ilist_iterator_w_bits InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)

    Utility function for performing a given action on each lane of a vector

    with

    effective length. EVL is assumed > 0. To simplify porting legacy

    code, this defaults to unrolling the implied loop for non-scalable element

    counts, but this is not considered to be part of the contract of this

    routine, and is expected to change in the future. The callback takes as

    arguments an IRBuilder whose insert point is correctly set for instantiating

    the given index, and a value which is (at runtime) the index to access. This

    index *may* be a constant.

    Defined at line 1751 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool isAssumeLikeIntrinsic (const Instruction * I)

    Is this an intrinsic that cannot be speculated but also cannot trap?

    Defined at line 648 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool canCreateUndefOrPoison (Register Reg, const MachineRegisterInfo & MRI, bool ConsiderFlagsAndMetadata)

    Returns true if

    can create undef or poison from non-undef

    &

    non-poison operands.

    controls whether poison

    producing flags and metadata on the instruction are considered. This can be

    used to see if the instruction could still introduce undef or poison even

    without poison generating flags and metadata which might be on the

    instruction.

    Defined at line 2008 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • ModulePass * createStripDebugMachineModulePass (bool OnlyDebugified)

    Creates MIR Strip Debug pass.

    Defined at line 106 of file llvm/lib/CodeGen/MachineStripDebug.cpp

  • void appendLoopsToWorklist (LoopInfo & , SmallPriorityWorklist<Loop *, 4> & )

    Utility that implements appending of loops onto a worklist given LoopInfo.

    Calls the templated utility taking a Range of loops, handing it the Loops

    in LoopInfo, iterated in reverse. This is because the loops are stored in

    RPO w.r.t. the control flow graph in LoopInfo. For the purpose of unrolling,

    loop deletion, and LICM, we largely want to work forward across the CFG so

    that we visit defs before uses and can propagate simplifications from one

    loop nest into the next. Calls appendReversedLoopsToWorklist with the

    already reversed loops in LI.

    FIXME: Consider changing the order in LoopInfo.

    Defined at line 1966 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • ModulePass * createCheckDebugMachineModulePass ()

    Creates MIR Check Debug pass.

    Defined at line 126 of file llvm/lib/CodeGen/MachineCheckDebugify.cpp

  • bool canCreatePoison (Register Reg, const MachineRegisterInfo & MRI, bool ConsiderFlagsAndMetadata)

    Returns true if

    can create poison from non-poison operands.

    Defined at line of file

  • raw_fd_ostream & outs ()

    This returns a reference to a raw_fd_ostream for standard output. Use it

    like: outs()

    <

    <

    "foo"

    <

    <

    "bar";

    Defined at line 890 of file llvm/lib/Support/raw_ostream.cpp

  • BranchInst * GetIfCondition (BasicBlock * BB, BasicBlock *& IfTrue, BasicBlock *& IfFalse)

    Check whether BB is the merge point of a if-region.

    If so, return the branch instruction that determines which entry into

    BB will be taken. Also, return by references the block that will be

    entered from if the condition is true, and the block that will be

    entered if the condition is false.

    This does no checking to see if the true/false blocks have large or unsavory

    instructions in them.

    Defined at line 1772 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Loop * cloneLoop (Loop * L, Loop * PL, ValueToValueMapTy & VM, LoopInfo * LI, LPPassManager * LPM)

    Recursively clone the specified loop and all of its children,

    mapping the blocks with the specified map.

    Defined at line 1971 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • Loop * cloneLoop (Loop * L, Loop * PL, int & VM, LoopInfo * LI, LPPassManager * LPM)

    Recursively clone the specified loop and all of its children,

    mapping the blocks with the specified map.

    Defined at line of file

  • bool isValidAssumeForContext (const Instruction * I, const Instruction * CxtI, const DominatorTree * DT, bool AllowEphemerals)

    Return true if it is valid to use the assumptions provided by an

    assume intrinsic, I, at the point in the control-flow identified by the

    context instruction, CxtI. By default, ephemeral values of the assumption

    are treated as an invalid context, to prevent the assumption from being used

    to optimize away its argument. If the caller can ensure that this won't

    happen, it can call with AllowEphemerals set to true to get more valid

    assumptions.

    Defined at line 655 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isGuaranteedNotToBeUndefOrPoison (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth)

    Returns true if

    cannot be poison and undef.

    Defined at line 2020 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createRegAllocScoringPass ()

    When learning an eviction policy, extract score(reward) information,

    otherwise this does nothing

    Defined at line 125 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

  • Value * addRuntimeChecks (Instruction * Loc, Loop * TheLoop, const SmallVectorImpl<RuntimePointerCheck> & PointerChecks, SCEVExpander & Expander, bool HoistRuntimeChecks)

    Add code that checks at runtime if the accessed arrays in

    overlap. Returns the final comparator value or NULL if no check is needed.

    Defined at line 2094 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • raw_fd_ostream & errs ()

    This returns a reference to a raw_ostream for standard error.

    Use it like: errs()

    <

    <

    "foo"

    <

    <

    "bar";

    By default, the stream is tied to stdout to ensure stdout is flushed before

    stderr is written, to ensure the error messages are written in their

    expected place.

    Defined at line 904 of file llvm/lib/Support/raw_ostream.cpp

  • bool isGuaranteedNotToBePoison (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth)

    Returns true if

    cannot be poison, but may be undef.

    Defined at line 2027 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • ModulePass * createJMCInstrumenterPass ()

    JMC instrument pass.

    Defined at line 67 of file llvm/lib/CodeGen/JMCInstrumenter.cpp

  • bool willNotFreeBetween (const Instruction * Assume, const Instruction * CtxI)

    Returns true, if no instruction between

    and

    may free

    memory and the function is marked as NoSync. The latter ensures the current

    function cannot arrange for another thread to free on its behalf.

    Defined at line 705 of file llvm/lib/Analysis/ValueTracking.cpp

  • void printLoop (const Loop & L, raw_ostream & OS, const std::string & Banner)

    Function to print a loop's contents as LLVM's text IR assembly.

    Defined at line 989 of file llvm/lib/Analysis/LoopInfo.cpp

  • raw_ostream & nulls ()

    This returns a reference to a raw_ostream which simply discards output.

    Defined at line 916 of file llvm/lib/Support/raw_ostream.cpp

  • Value * addDiffRuntimeChecks (Instruction * Loc, ArrayRef<PointerDiffInfo> Checks, SCEVExpander & Expander, function_ref<Value *(IRBuilderBase &, unsigned int)> GetVF, unsigned int IC)

    Defined at line 2153 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • FunctionPass * createSelectOptimizePass ()

    This pass converts conditional moves to conditional jumps when profitable.

    Defined at line 353 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • bool isGuaranteedNotToBeUndef (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth)

    Returns true if

    cannot be undef, but may be poison.

    Defined at line 2034 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createCallBrPass ()

    Defined at line 103 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • MDNode * findOptionMDForLoopID (MDNode * LoopID, StringRef Name)

    Find and return the loop attribute node for the attribute

    in

    Return nullptr if there is no such attribute.

    Defined at line 1041 of file llvm/lib/Analysis/LoopInfo.cpp

  • ModulePass * createWindowsSecureHotPatchingPass ()

    Creates Windows Secure Hot Patch pass.

    Defined at line 203 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • ConstantRange getConstantRangeFromMetadata (const MDNode & RangeMD)

    Parse out a conservative ConstantRange from !range metadata.

    E.g. if RangeMD is !{i32 0, i32 10, i32 15, i32 20} then return [0, 20).

    Defined at line 2294 of file llvm/lib/IR/ConstantRange.cpp

  • Type * getTypeForLLT (LLT Ty, LLVMContext & C)

    Get the type back from LLT. It won't be 100 percent accurate but returns an

    estimate of the type.

    Defined at line 2041 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • FunctionPass * createKCFIPass ()

    Lowers KCFI operand bundles for indirect calls.

    Defined at line 61 of file llvm/lib/CodeGen/KCFI.cpp

  • MDNode * findOptionMDForLoop (const Loop * TheLoop, StringRef Name)

    Find string metadata for a loop.

    Returns the MDNode where the first operand is the metadata's name. The

    following operands are the metadata's values. If no metadata with

    is

    found, return nullptr.

    Defined at line 1067 of file llvm/lib/Analysis/LoopInfo.cpp

  • bool isAssertMI (const MachineInstr & MI)

    Returns true if the instruction

    is one of the assert

    instructions.

    Defined at line 2048 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • OverflowResult computeOverflowForUnsignedMul (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ, bool IsNSW)

    Defined at line 7388 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional getOptionalBoolLoopAttribute (const Loop * TheLoop, StringRef Name)

    Defined at line 1091 of file llvm/lib/Analysis/LoopInfo.cpp

  • bool SplitIndirectBrCriticalEdges (Function & F, bool IgnoreBlocksWithoutPHI, BranchProbabilityInfo * BPI, BlockFrequencyInfo * BFI)

    Split critical edges where the source of the edge is an indirectbr

    instruction. This isn't always possible, but we can handle some easy cases.

    This is useful because MI is unable to split such critical edges,

    which means it will not be able to sink instructions along those edges.

    This is especially painful for indirect branches with many successors, where

    we end up having to prepare all outgoing values in the origin block.

    Our normal algorithm for splitting critical edges requires us to update

    the outgoing edges of the edge origin block, but for an indirectbr this

    is hard, since it would require finding and updating the block addresses

    the indirect branch uses. But if a block only has a single indirectbr

    predecessor, with the others being regular branches, we can do it in a

    different way.

    Say we have A -> D, B -> D, I -> D where only I -> D is an indirectbr.

    We can split D into D0 and D1, where D0 contains only the PHIs from D,

    and D1 is the D block body. We can then duplicate D0 as D0A and D0B, and

    create the following structure:

    A -> D0A, B -> D0A, I -> D0B, D0A -> D1, D0B -> D1

    If BPI and BFI aren't non-null, BPI/BFI will be updated accordingly.

    When `IgnoreBlocksWithoutPHI` is set to `true` critical edges leading to a

    block without phi-instructions will not be split.

    Defined at line 349 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • OverflowResult computeOverflowForSignedMul (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)

    Defined at line 7404 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool getBooleanLoopAttribute (const Loop * TheLoop, StringRef Name)

    Returns true if Name is applied to TheLoop and enabled.

    Defined at line 1109 of file llvm/lib/Analysis/LoopInfo.cpp

  • OverflowResult computeOverflowForUnsignedAdd (const WithCache<const Value *> & LHS, const WithCache<const Value *> & RHS, const SimplifyQuery & SQ)

    Defined at line 7443 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <typename R, typename UnaryPredicate>
    bool all_of (R && range, UnaryPredicate P)

    Forward declarations required by zip_shortest/zip_equal/zip_first/zip_longest

    Defined at line 1737 of file llvm/include/llvm/ADT/STLExtras.h

  • std::optional<int> getOptionalIntLoopAttribute (const Loop * TheLoop, StringRef Name)

    Find named metadata for a loop with an integer value.

    Defined at line 1113 of file llvm/lib/Analysis/LoopInfo.cpp

  • void InvertBranch (BranchInst * PBI, IRBuilderBase & Builder)

    Utility function for inverting branch condition and for swapping its

    successors

    Defined at line 1864 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • OverflowResult computeOverflowForSignedAdd (const WithCache<const Value *> & LHS, const WithCache<const Value *> & RHS, const SimplifyQuery & SQ)

    Defined at line 8046 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <typename R, typename UnaryPredicate>
    bool any_of (R && range, UnaryPredicate P)

    Provide wrappers to std::any_of which take ranges instead of having to pass

    begin/end explicitly.

    Defined at line 1744 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename T>
    bool all_equal (std::initializer_list<T> Values)

    Returns true if all Values in the initializer lists are equal or the list

    is empty.

    Defined at line 2156 of file llvm/include/llvm/ADT/STLExtras.h

  • bool hasOnlySimpleTerminator (const Function & F)

    Check whether the function only has simple terminator:

    br/brcond/unreachable/ret

    Defined at line 1878 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • int getIntLoopAttribute (const Loop * TheLoop, StringRef Name, int Default)

    Find named metadata for a loop with an integer value. Return

    if

    not set.

    Defined at line 1127 of file llvm/lib/Analysis/LoopInfo.cpp

  • OverflowResult computeOverflowForSignedAdd (const AddOperator * Add, const SimplifyQuery & SQ)

    This version also leverages the sign bit of Add if known.

    Defined at line 8040 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <typename R>
    size_t range_size (R && Range)

    Returns the size of the

    i.e., the number of elements. This

    implementation takes inspiration from `std::ranges::size` from C++20 and

    delegates the size check to `adl_size` or `std::distance`, in this order of

    preference. Unlike `llvm::size`, this function does *not* guarantee O(1)

    running time, and is intended to be used in generic code that does not know

    the exact range type.

    Defined at line 1692 of file llvm/include/llvm/ADT/STLExtras.h

  • OverflowResult computeOverflowForUnsignedSub (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)

    Defined at line 7512 of file llvm/lib/Analysis/ValueTracking.cpp

  • Printable printBasicBlock (const BasicBlock * BB)

    Print BasicBlock

    as an operand or print "<nullptr>" if

    is a

    nullptr.

    Defined at line 1888 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • ModulePass * createDXILResourceWrapperPassPass ()

    Defined at line 1176 of file llvm/lib/Analysis/DXILResource.cpp

  • OverflowResult computeOverflowForSignedSub (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)

    Defined at line 7545 of file llvm/lib/Analysis/ValueTracking.cpp

  • std::optional<const MDOperand *> findStringMetadataForLoop (const Loop * TheLoop, StringRef Name)

    Find string metadata for loop

    If it has a value (e.g. {"llvm.distribute", 1} return the value as an

    operand or null otherwise. If the string metadata is not found return

    Optional's not-a-value.

    Defined at line 1076 of file llvm/lib/Analysis/LoopInfo.cpp

  • std::optional<IVConditionInfo> hasPartialIVCondition (const Loop & L, unsigned int MSSAThreshold, const MemorySSA & MSSA, AAResults & AA)

    Check if the loop header has a conditional branch that is not

    loop-invariant, because it involves load instructions. If all paths from

    either the true or false successor to the header or loop exists do not

    modify the memory feeding the condition, perform 'partial unswitching'. That

    is, duplicate the instructions feeding the condition in the pre-header. Then

    unswitch on the duplicated condition. The condition is now known in the

    unswitched version for the 'invariant' path through the original loop.

    If the branch condition of the header is partially invariant, return a pair

    containing the instructions to duplicate and a boolean Constant to update

    the condition in the loops created for the true or false successors.

    Defined at line 2199 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • CallBase * getLoopConvergenceHeart (const Loop * TheLoop)

    Find the convergence heart of the loop.

    Defined at line 1132 of file llvm/lib/Analysis/LoopInfo.cpp

  • bool isOverflowIntrinsicNoWrap (const WithOverflowInst * WO, const DominatorTree & DT)

    Returns true if the arithmetic part of the

    's result is

    used only along the paths control dependent on the computation

    not overflowing,

    being an

    <op

    >.with.overflow intrinsic.

    Defined at line 7573 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool hasMustProgress (const Loop * L)

    Look for the loop attribute that requires progress within the loop.

    Note: Most consumers probably want "isMustProgress" which checks

    the containing function attribute too.

    Defined at line 1158 of file llvm/lib/Analysis/LoopInfo.cpp

  • template <class Tr>
    raw_ostream & operator<< (raw_ostream & OS, const RegionNodeBase<Tr> & Node)

    Print a RegionNode.

    Defined at line 1012 of file llvm/include/llvm/Analysis/RegionInfo.h

  • ConstantRange getVScaleRange (const Function * F, unsigned int BitWidth)

    Determine the possible constant range of vscale with the given bit width,

    based on the vscale_range function attribute.

    Defined at line 1279 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isMustProgress (const Loop * L)

    Return true if this loop can be assumed to make progress. (i.e. can't

    be infinite without side effects without also being undefined)

    Defined at line 1162 of file llvm/lib/Analysis/LoopInfo.cpp

  • ConstantRange computeConstantRange (const Value * V, bool ForSigned, bool UseInstrInfo, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)

    Determine the possible constant range of an integer or vector of integer

    value. This is intended as a cheap, non-recursive check.

    Defined at line 10369 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isFinite (const Loop * L)

    Return true if this loop can be assumed to run for a finite number of

    iterations.

    Defined at line 1152 of file llvm/lib/Analysis/LoopInfo.cpp

  • ConstantRange computeConstantRangeIncludingKnownBits (const WithCache<const Value *> & V, bool ForSigned, const SimplifyQuery & SQ)

    Combine constant ranges from computeConstantRange() and computeKnownBits().

    Defined at line 7376 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isValidAsAccessGroup (MDNode * AccGroup)

    Return whether an MDNode might represent an access group.

    Access group metadata nodes have to be distinct and empty. Being

    always-empty ensures that it never needs to be changed (which -- because

    MDNodes are designed immutable -- would require creating a new MDNode). Note

    that this is not a sufficient condition: not every distinct and empty NDNode

    is representing an access group.

    Defined at line 1166 of file llvm/lib/Analysis/LoopInfo.cpp

  • bool isGuaranteedToTransferExecutionToSuccessor (const Instruction * I)

    Return true if this function can prove that the instruction I will

    always transfer execution to one of its successors (including the next

    instruction that follows within a basic block). E.g. this is not

    guaranteed for function calls that could loop infinitely.

    In other words, this function returns false for instructions that may

    transfer execution or fail to transfer execution in a way that is not

    captured in the CFG nor in the sequence of instructions within a basic

    block.

    Undefined behavior is assumed not to happen, so e.g. division is

    guaranteed to transfer execution to the following instruction even

    though division by zero might cause undefined behavior.

    Defined at line 8053 of file llvm/lib/Analysis/ValueTracking.cpp

  • llvm::MDNode * makePostTransformationMetadata (llvm::LLVMContext & Context, MDNode * OrigLoopID, llvm::ArrayRef<llvm::StringRef> RemovePrefixes, llvm::ArrayRef<llvm::MDNode *> AddAttrs)

    Create a new LoopID after the loop has been transformed.

    This can be used when no follow-up loop attributes are defined

    (llvm::makeFollowupLoopID returning None) to stop transformations to be

    applied again.

    Parameters

    Context The LLVMContext in which to create the new LoopID.
    OrigLoopID The original LoopID; can be nullptr if the original loop has no LoopID.
    RemovePrefixes Remove all loop attributes that have these prefixes. Use to remove metadata of the transformation that has been applied.
    AddAttrs Add these loop attributes to the new LoopID.

    Returns

    A new LoopID that can be applied using Loop::setLoopID().

    Defined at line 1170 of file llvm/lib/Analysis/LoopInfo.cpp

  • bool isGuaranteedToTransferExecutionToSuccessor (const BasicBlock * BB)

    Returns true if this block does not contain a potential implicit exit.

    This is equivelent to saying that all instructions within the basic block

    are guaranteed to transfer execution to their successor within the basic

    block. This has the same assumptions w.r.t. undefined behavior as the

    instruction variant of this function.

    Defined at line 8085 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isGuaranteedToTransferExecutionToSuccessor (int Begin, int End, unsigned int ScanLimit)

    Return true if every instruction in the range (Begin, End) is

    guaranteed to transfer execution to its static successor.

    bounds the search to avoid scanning huge blocks.

    Defined at line of file

  • bool isGuaranteedToTransferExecutionToSuccessor (ilist_iterator_w_bits Begin, ilist_iterator_w_bits End, unsigned int ScanLimit)

    Return true if every instruction in the range (Begin, End) is

    guaranteed to transfer execution to its static successor.

    bounds the search to avoid scanning huge blocks.

    Defined at line 8094 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isGuaranteedToTransferExecutionToSuccessor (int Range, unsigned int ScanLimit)

    Same as previous, but with range expressed via iterator_range.

    Defined at line of file

  • bool isGuaranteedToTransferExecutionToSuccessor (iterator_range Range, unsigned int ScanLimit)

    Same as previous, but with range expressed via iterator_range.

    Defined at line 8101 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isGuaranteedToExecuteForEveryIteration (const Instruction * I, const Loop * L)

    Return true if this function can prove that the instruction I

    is executed for every iteration of the loop L.

    Note that this currently only considers the loop header.

    Defined at line 8113 of file llvm/lib/Analysis/ValueTracking.cpp

  • ModulePass * createDXILResourceBindingWrapperPassPass ()

    Defined at line 1206 of file llvm/lib/Analysis/DXILResource.cpp

  • bool propagatesPoison (const Use & PoisonOp)

    Return true if

    user yields poison or raises UB if its

    operand

    is poison.

    If

    is a vector or an aggregate and the operation's result is a

    single value, any poison element in /p PoisonOp should make the result

    poison or raise UB.

    To filter out operands that raise UB on poison, you can use

    getGuaranteedNonPoisonOp.

    Defined at line 8205 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool intrinsicPropagatesPoison (Intrinsic::ID IID)

    Return whether this intrinsic propagates poison for all operands.

    Defined at line 8128 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool mustTriggerUB (const Instruction * I, const SmallPtrSetImpl<const Value *> & KnownPoison)

    Return true if the given instruction must trigger undefined behavior

    when I is executed with any operands which appear in KnownPoison holding

    a poison value at the point of execution.

    Defined at line 8313 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool programUndefinedIfUndefOrPoison (const Instruction * Inst)

    Return true if this function can prove that if Inst is executed

    and yields a poison value or undef bits, then that will trigger

    undefined behavior.

    Note that this currently only considers the basic block that is

    the parent of Inst.

    Defined at line 8413 of file llvm/lib/Analysis/ValueTracking.cpp

  • void report_fatal_error (Error Err, bool gen_crash_diag)

    Defined at line 167 of file llvm/lib/Support/Error.cpp

  • bool programUndefinedIfPoison (const Instruction * Inst)

    Defined at line 8417 of file llvm/lib/Analysis/ValueTracking.cpp

  • void reportFatalInternalError (Error Err)

    Report a fatal error that indicates a bug in LLVM.

    See ErrorHandling.h for details.

    Defined at line 177 of file llvm/lib/Support/Error.cpp

  • void reportFatalUsageError (Error Err)

    Report a fatal error that does not indicate a bug in LLVM.

    See ErrorHandling.h for details.

    Defined at line 180 of file llvm/lib/Support/Error.cpp

  • ilist_iterator_w_bits skipDebugIntrinsics (ilist_iterator_w_bits It)

    Advance

    while it points to a debug instruction and return the result.

    This assumes that

    is not at the end of a block.

    Defined at line 682 of file llvm/lib/IR/BasicBlock.cpp

  • int skipDebugIntrinsics (int It)

    Advance

    while it points to a debug instruction and return the result.

    This assumes that

    is not at the end of a block.

    Defined at line of file

  • bool canCreateUndefOrPoison (const Operator * Op, bool ConsiderFlagsAndMetadata)

    canCreateUndefOrPoison returns true if Op can create undef or poison from

    non-undef

    &

    non-poison operands.

    For vectors, canCreateUndefOrPoison returns true if there is potential

    poison or undef in any element of the result when vectors without

    undef/poison poison are given as operands.

    For example, given `Op = shl

    <

    2 x i32> %x,

    <

    0, 32>`, this function returns

    true. If Op raises immediate UB but never creates poison or undef

    (e.g. sdiv I, 0), canCreatePoison returns false.

    controls whether poison producing flags and

    metadata on the instruction are considered. This can be used to see if the

    instruction could still introduce undef or poison even without poison

    generating flags and metadata which might be on the instruction.

    (i.e. could the result of Op->dropPoisonGeneratingFlags() still create

    poison or undef)

    canCreatePoison returns true if Op can create poison from non-poison

    operands.

    Defined at line 7748 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool canCreatePoison (const Operator * Op, bool ConsiderFlagsAndMetadata)

    Defined at line 7754 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool impliesPoison (const Value * ValAssumedPoison, const Value * V)

    Return true if V is poison given that ValAssumedPoison is already poison.

    For example, if ValAssumedPoison is `icmp X, 10` and V is `icmp X, 5`,

    impliesPoison returns true.

    Defined at line 7808 of file llvm/lib/Analysis/ValueTracking.cpp

  • hash_code hash_value (const MachineOperand & MO)

    MachineOperand hash_value overload.

    Note that this includes the same information in the hash that

    isIdenticalTo uses for comparison. It is thus suited for use in hash

    tables which use that function for equality comparisons only. This must

    stay exactly in sync with isIdenticalTo above.

    Defined at line 404 of file llvm/lib/CodeGen/MachineOperand.cpp

  • bool isGuaranteedNotToBeUndefOrPoison (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)

    Return true if this function can prove that V does not have undef bits

    and is never poison. If V is an aggregate value or vector, check whether

    all elements (except padding) are not undef or poison.

    Note that this is different from canCreateUndefOrPoison because the

    function assumes Op's operands are not poison/undef.

    If CtxI and DT are specified this method performs flow-sensitive analysis

    and returns true if it is guaranteed to be never undef or poison

    immediately before the CtxI.

    Defined at line 7974 of file llvm/lib/Analysis/ValueTracking.cpp

  • hash_code hash_value (const RegisterBankInfo::PartialMapping & PartMapping)

    Hashing function for PartialMapping.

    It is required for the hashing of ValueMapping.

    Defined at line 273 of file llvm/lib/CodeGen/RegisterBankInfo.cpp

  • bool isGuaranteedNotToBePoison (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)

    Returns true if V cannot be poison, but may be undef.

    Defined at line 7982 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isGuaranteedNotToBeUndef (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)

    Returns true if V cannot be undef, but may be poison.

    Defined at line 7989 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool mustExecuteUBIfPoisonOnPathTo (Instruction * Root, Instruction * OnPathTo, DominatorTree * DT)

    Return true if undefined behavior would provable be executed on the path to

    OnPathTo if Root produced a posion result. Note that this doesn't say

    anything about whether OnPathTo is actually executed or whether Root is

    actually poison. This can be used to assess whether a new use of Root can

    be added at a location which is control equivalent with OnPathTo (such as

    immediately before it) without introducing UB which didn't previously

    exist. Note that a false result conveys no information.

    Defined at line 8003 of file llvm/lib/Analysis/ValueTracking.cpp

  • std::optional<std::pair<CmpPredicate, Constant *>> getFlippedStrictnessPredicateAndConstant (CmpPredicate Pred, Constant * C)

    Convert an integer comparison with a constant RHS into an equivalent

    form with the strictness flipped predicate. Return the new predicate and

    corresponding constant RHS if possible. Otherwise return std::nullopt.

    E.g., (icmp sgt X, 0) -> (icmp sle X, 1).

    Defined at line 8821 of file llvm/lib/Analysis/ValueTracking.cpp

  • Error writeToOutput (StringRef OutputFileName, std::function<Error (raw_ostream &)> Write)

    This helper creates an output stream and then passes it to

    The stream created is based on the specified

    llvm::outs for "-", raw_null_ostream for "/dev/null", and raw_fd_ostream

    for other names. For raw_fd_ostream instances, the stream writes to

    a temporary file. The final output file is atomically replaced with the

    temporary file after the

    function is finished.

    Defined at line 1010 of file llvm/lib/Support/raw_ostream.cpp

  • raw_ostream & operator<< (raw_ostream & OS, nullopt_t )

    Defined at line 11 of file llvm/lib/Support/Optional.cpp

  • optional StripTemplateParameters (StringRef Name)

    If `Name` is the name of a templated function that includes template

    parameters, returns a substring of `Name` containing no template

    parameters.

    E.g.: StripTemplateParameters("foo<int>") = "foo".

    Defined at line 1125 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • const SCEV * replaceSymbolicStrideSCEV (PredicatedScalarEvolution & PSE, const int & PtrToStride, Value * Ptr)

    Return the SCEV corresponding to a pointer with the symbolic stride

    replaced with constant one, assuming the SCEV predicate associated with

    is true.

    If necessary this method will version the stride of the pointer according

    to

    and therefore add further predicates to

    provides the mapping between the pointer value and its

    stride as collected by LoopVectorizationLegality::collectStridedAccess.

    Defined at line 155 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • const SCEV * replaceSymbolicStrideSCEV (PredicatedScalarEvolution & PSE, const DenseMap<Value *, const SCEV *> & PtrToStride, Value * Ptr)

    Return the SCEV corresponding to a pointer with the symbolic stride

    replaced with constant one, assuming the SCEV predicate associated with

    is true.

    If necessary this method will version the stride of the pointer according

    to

    and therefore add further predicates to

    provides the mapping between the pointer value and its

    stride as collected by LoopVectorizationLegality::collectStridedAccess.

    Defined at line of file

  • std::optional<ObjCSelectorNames> getObjCNamesIfSelector (StringRef Name)

    If `Name` is the AT_name of a DIE which refers to an Objective-C selector,

    returns an instance of ObjCSelectorNames. The Selector and ClassName fields

    are guaranteed to be non-empty in the result.

    Defined at line 1093 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • SelectPatternResult matchSelectPattern (Value * V, Value *& LHS, Value *& RHS, Instruction::CastOps * CastOp, unsigned int Depth)

    Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind

    and providing the out parameter results if we successfully match.

    For ABS/NABS, LHS will be set to the input to the abs idiom. RHS will be

    the negation instruction from the idiom.

    If CastOp is not nullptr, also match MIN/MAX idioms where the type does

    not match that of the original select. If this is the case, the cast

    operation (one of Trunc,SExt,Zext) that must be done to transform the

    type of LHS and RHS into the type of V is returned in CastOp.

    For example:

    %1 = icmp slt i32 %a, i32 4

    %2 = sext i32 %a to i64

    %3 = select i1 %1, i64 %2, i64 4

    -> LHS = %a, RHS = i32 4, *CastOp = Instruction::SExt

    Defined at line 9205 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional getPtrStride (PredicatedScalarEvolution & PSE, Type * AccessTy, Value * Ptr, const Loop * Lp, const DominatorTree & DT, const int & StridesMap, bool Assume, bool ShouldCheckWrap)

    Check whether the access through

    has a constant stride.

    Defined at line 1622 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • optional getPtrStride (PredicatedScalarEvolution & PSE, Type * AccessTy, Value * Ptr, const Loop * Lp, const DominatorTree & DT, const DenseMap<Value *, const SCEV *> & StridesMap, bool Assume, bool ShouldCheckWrap)

    If the pointer has a constant stride return it in units of the access type

    size. If the pointer is loop-invariant, return 0. Otherwise return

    std::nullopt.

    Ensure that it does not wrap in the address space, assuming the predicate

    associated with

    is true.

    If necessary this method will version the stride of the pointer according

    to

    and therefore add further predicates to

    The

    parameter indicates if we are allowed to make additional

    run-time assumptions.

    Note that the analysis results are defined if-and-only-if the original

    memory access was defined. If that access was dead, or UB, then the

    result of this function is undefined.

    Defined at line of file

  • SelectPatternResult matchDecomposedSelectPattern (CmpInst * CmpI, Value * TrueVal, Value * FalseVal, Value *& LHS, Value *& RHS, FastMathFlags FMF, Instruction::CastOps * CastOp, unsigned int Depth)

    Determine the pattern that a select with the given compare as its

    predicate and given values as its true/false operands would match.

    Defined at line 9226 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isNoAliasCall (const Value * V)

    Return true if this pointer is returned by a noalias function.

    Defined at line 838 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • optional getPointersDiff (Type * ElemTyA, Value * PtrA, Type * ElemTyB, Value * PtrB, const DataLayout & DL, ScalarEvolution & SE, bool StrictCheck, bool CheckType)

    Returns the distance between the pointers

    and

    iff they are

    compatible and it is possible to calculate the distance between them. This

    is a simple API that does not depend on the analysis pass.

    Parameters

    StrictCheck Ensure that the calculated distance matches the type-based one after all the bitcasts removal in the provided pointers.

    Defined at line 1657 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • SelectPatternResult getSelectPattern (Predicate Pred, SelectPatternNaNBehavior NaNBehavior, bool Ordered)

    Determine the pattern for predicate `X Pred Y ? X : Y`.

    Defined at line 8790 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isIdentifiedObject (const Value * V)

    Return true if this pointer refers to a distinct and identifiable object.

    This returns true for:

    Global Variables and Functions (but not Global Aliases)

    Allocas

    ByVal and NoAlias Arguments

    NoAlias returns (e.g. calls to malloc)

    Defined at line 850 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • Predicate getMinMaxPred (SelectPatternFlavor SPF, bool Ordered)

    Return the canonical comparison predicate for the specified

    minimum/maximum flavor.

    Defined at line 9264 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool sortPtrAccesses (ArrayRef VL, Type * ElemTy, const DataLayout & DL, ScalarEvolution & SE, SmallVectorImpl<unsigned int> & SortedIndices)

    Attempt to sort the pointers in

    and return the sorted indices

    in

    if reordering is required.

    Returns 'true' if sorting is legal, otherwise returns 'false'.

    For example, for a given

    of memory accesses in program order, a[i+4],

    a[i+0], a[i+1] and a[i+7], this function will sort the

    and save the

    sorted indices in

    as a[i+0], a[i+1], a[i+4], a[i+7] and

    saves the mask for actual memory accesses in program order in

    as

    <

    1,2,0,3>

    Defined at line 1726 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • bool isIdentifiedFunctionLocal (const Value * V)

    Return true if V is umabigously identified at the function-level.

    Different IdentifiedFunctionLocals can't alias.

    Further, an IdentifiedFunctionLocal can not alias with any function

    arguments other than itself, which is not necessarily true for

    IdentifiedObjects.

    Defined at line 862 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • Intrinsic::ID getMinMaxIntrinsic (SelectPatternFlavor SPF)

    Convert given `SPF` to equivalent min/max intrinsic.

    Caller must ensure `SPF` is an integer min or max pattern.

    Defined at line 9276 of file llvm/lib/Analysis/ValueTracking.cpp

  • hash_code hash_value (StringRef S)

    Compute a hash_code for a StringRef.

    Defined at line 610 of file llvm/lib/Support/StringRef.cpp

  • SelectPatternFlavor getInverseMinMaxFlavor (SelectPatternFlavor SPF)

    Return the inverse minimum/maximum flavor of the specified flavor.

    For example, signed minimum is the inverse of signed maximum.

    Defined at line 9291 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isConsecutiveAccess (Value * A, Value * B, const DataLayout & DL, ScalarEvolution & SE, bool CheckType)

    Returns true if the memory operations

    and

    are consecutive.

    Defined at line 1767 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • Intrinsic::ID getInverseMinMaxIntrinsic (Intrinsic::ID MinMaxID)

    Defined at line 9299 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isBaseOfObject (const Value * V)

    Return true if we know V to the base address of the corresponding memory

    object. This implies that any address less than V must be out of bounds

    for the underlying object. Note that just being isIdentifiedObject() is

    not enough - For example, a negative offset from a noalias argument or call

    can be inbounds w.r.t the actual underlying object.

    Defined at line 866 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • APInt getMinMaxLimit (SelectPatternFlavor SPF, unsigned int BitWidth)

    Return the minimum or maximum constant value for the specified integer

    min/max flavor and type.

    Defined at line 9319 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isEscapeSource (const Value * V)

    Returns true if the pointer is one which would have been considered an

    escape by isNotCapturedBefore.

    Defined at line 874 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const LiveRange::Segment & S)

    Defined at line 989 of file llvm/lib/CodeGen/LiveInterval.cpp

  • std::pair<Intrinsic::ID, bool> canConvertToMinOrMaxIntrinsic (ArrayRef VL)

    Check if the values in

    are select instructions that can be converted

    to a min or max (vector) intrinsic. Returns the intrinsic ID, if such a

    conversion is possible, together with a bool indicating whether all select

    conditions are only used by the selects. Otherwise return

    Intrinsic::not_intrinsic.

    Defined at line 9329 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isNotVisibleOnUnwind (const Value * Object, bool & RequiresNoCaptureBeforeUnwind)

    Return true if Object memory is not visible after an unwind, in the sense

    that program semantics cannot depend on Object containing any particular

    value on unwind. If the RequiresNoCaptureBeforeUnwind out parameter is set

    to true, then the memory is only not visible if the object has not been

    captured prior to the unwind. Otherwise it is not visible even if captured.

    Defined at line 913 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • std::pair<const SCEV *, const SCEV *> getStartAndEndForAccess (const Loop * Lp, const SCEV * PtrExpr, Type * AccessTy, const SCEV * BTC, const SCEV * MaxBTC, ScalarEvolution * SE, int * PointerBounds, DominatorTree * DT, AssumptionCache * AC, std::optional<ScalarEvolution::LoopGuards> & LoopGuards)

    Calculate Start and End points of memory access using exact backedge taken

    count

    if computable or maximum backedge taken count

    otherwise.

    Let's assume A is the first access and B is a memory access on N-th loop

    iteration. Then B is calculated as:

    B = A + Step*N .

    Step value may be positive or negative.

    N is a calculated back-edge taken count:

    N = (TripCount > 0) ? RoundDown(TripCount -1 , VF) : 0

    Start and End points are calculated in the following way:

    Start = UMIN(A, B) ; End = UMAX(A, B) + SizeOfElt,

    where SizeOfElt is the size of single memory access in bytes.

    There is no conflict when the intervals are disjoint:

    NoConflict = (P2.Start >= P1.End) || (P1.Start >= P2.End)

    Defined at line 318 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • pair getStartAndEndForAccess (const Loop * Lp, const SCEV * PtrExpr, Type * AccessTy, const SCEV * BTC, const SCEV * MaxBTC, ScalarEvolution * SE, DenseMap<std::pair<const SCEV *, Type *>, std::pair<const SCEV *, const SCEV *>> * PointerBounds, DominatorTree * DT, AssumptionCache * AC, std::optional<ScalarEvolution::LoopGuards> & LoopGuards)

    Calculate Start and End points of memory access using exact backedge taken

    count

    if computable or maximum backedge taken count

    otherwise.

    Let's assume A is the first access and B is a memory access on N-th loop

    iteration. Then B is calculated as:

    B = A + Step*N .

    Step value may be positive or negative.

    N is a calculated back-edge taken count:

    N = (TripCount > 0) ? RoundDown(TripCount -1 , VF) : 0

    Start and End points are calculated in the following way:

    Start = UMIN(A, B) ; End = UMAX(A, B) + SizeOfElt,

    where SizeOfElt is the size of single memory access in bytes.

    There is no conflict when the intervals are disjoint:

    NoConflict = (P2.Start >= P1.End) || (P1.Start >= P2.End)

    Defined at line of file

  • EVT FromVT (int )

    Defined at line of file

  • bool isWritableObject (const Value * Object, bool & ExplicitlyDereferenceableOnly)

    Return true if the Object is writable, in the sense that any location based

    on this pointer that can be loaded can also be stored to without trapping.

    Additionally, at the point Object is declared, stores can be introduced

    without data races. At later points, this is only the case if the pointer

    can not escape to a different thread.

    If ExplicitlyDereferenceableOnly is set to true, this property only holds

    for the part of Object that is explicitly marked as dereferenceable, e.g.

    using the dereferenceable(N) attribute. It does not necessarily hold for

    parts that are only known to be dereferenceable due to the presence of

    loads.

    Defined at line 938 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • bool matchSimpleRecurrence (const PHINode * P, BinaryOperator *& BO, Value *& Start, Value *& Step)

    Attempt to match a simple first order recurrence cycle of the form:

    %iv = phi Ty [%Start, %Entry], [%Inc, %backedge]

    %inc = binop %iv, %step

    OR

    %iv = phi Ty [%Start, %Entry], [%Inc, %backedge]

    %inc = binop %step, %iv

    A first order recurrence is a formula with the form: X_n = f(X_(n-1))

    A couple of notes on subtleties in that definition:

    * The Step does not have to be loop invariant. In math terms, it can

    be a free variable. We allow recurrences with both constant and

    variable coefficients. Callers may wish to filter cases where Step

    does not dominate P.

    * For non-commutative operators, we will match both forms. This

    results in some odd recurrence structures. Callers may wish to filter

    out recurrences where the phi is not the LHS of the returned operator.

    * Because of the structure matched, the caller can assume as a post

    condition of the match the presence of a Loop with P's parent as it's

    header *except* in unreachable code. (Dominance decays in unreachable

    code.)

    NOTE: This is intentional simple. If you want the ability to analyze

    non-trivial loop conditons, see ScalarEvolution instead.

    Defined at line 9397 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool matchSimpleRecurrence (const BinaryOperator * I, PHINode *& P, Value *& Start, Value *& Step)

    Analogous to the above, but starting from the binary operator

    Defined at line 9408 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool matchSimpleBinaryIntrinsicRecurrence (const IntrinsicInst * I, PHINode *& P, Value *& Init, Value *& OtherOp)

    Attempt to match a simple value-accumulating recurrence of the form:

    %llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge]

    %llvm.intrinsic = call Ty

    .intrinsic(%OtherOp, %llvm.intrinsic.acc)

    OR

    %llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge]

    %llvm.intrinsic = call Ty

    .intrinsic(%llvm.intrinsic.acc, %OtherOp)

    The recurrence relation is of kind:

    X_0 = %a (initial value),

    X_i = call

    .binary.intrinsic(X_i-1, %b)

    Where %b is not required to be loop-invariant.

    Defined at line 9417 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional isImpliedCondition (const Value * LHS, const Value * RHS, const DataLayout & DL, bool LHSIsTrue, unsigned int Depth)

    Return true if RHS is known to be implied true by LHS. Return false if

    RHS is known to be implied false by LHS. Otherwise, return std::nullopt if

    no implication can be made. A

    &

    B must be i1 (boolean) values or a vector of

    such values. Note that the truth table for implication is the same as

    <

    =u on

    i1 values (but not

    <

    =s!). The truth table for both is:

    | T | F (B)

    T | T | F

    F | T | T

    (A)

    Defined at line 9845 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional isImpliedCondition (const Value * LHS, CmpPredicate RHSPred, const Value * RHSOp0, const Value * RHSOp1, const DataLayout & DL, bool LHSIsTrue, unsigned int Depth)

    Defined at line 9792 of file llvm/lib/Analysis/ValueTracking.cpp

  • raw_ostream & operator<< (raw_ostream & OS, Predicate Pred)

    Defined at line 3658 of file llvm/lib/IR/Instructions.cpp

  • optional isImpliedByDomCondition (const Value * Cond, const Instruction * ContextI, const DataLayout & DL)

    Return the boolean condition value in the context of the given instruction

    if it is known based on dominating conditions.

    Defined at line 9945 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional isImpliedByDomCondition (CmpPredicate Pred, const Value * LHS, const Value * RHS, const Instruction * ContextI, const DataLayout & DL)

    Defined at line 9955 of file llvm/lib/Analysis/ValueTracking.cpp

  • void findValuesAffectedByCondition (Value * Cond, bool IsAssume, function_ref<void (Value *)> InsertAffected)

    Call

    on all Values whose known bits / value may be

    affected by the condition

    Used by AssumptionCache and

    DomConditionCache.

    Defined at line 10467 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * stripNullTest (Value * V)

    Returns the inner value X if the expression has the form f(X)

    where f(X) == 0 if and only if X == 0, otherwise returns nullptr.

    Defined at line 10613 of file llvm/lib/Analysis/ValueTracking.cpp

  • const Value * stripNullTest (const Value * V)

    Defined at line 10594 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool collectPossibleValues (const Value * V, SmallPtrSetImpl<const Constant *> & Constants, unsigned int MaxCount, bool AllowUndefOrPoison)

    Enumerates all possible immediate values of V and inserts them into the set

    If

    is false, it fails when V may contain

    undef/poison elements. Returns true if the result is complete. Otherwise,

    the result is incomplete (more than MaxCount values).

    NOTE: The constant values are not distinct.

    Defined at line 10617 of file llvm/lib/Analysis/ValueTracking.cpp

  • GlobalVariable * collectUsedGlobalVariables (const Module & M, SmallVectorImpl<GlobalValue *> & Vec, bool CompilerUsed)

    Given "llvm.used" or "llvm.compiler.used" as a global name, collect the

    initializer elements of that global in a SmallVector and return the global

    itself.

    Defined at line 870 of file llvm/lib/IR/Module.cpp

  • void logAllUnhandledErrors (Error E, raw_ostream & OS, Twine ErrorBanner)

    Log all errors (if any) in E to OS. If there are any errors, ErrorBanner

    will be printed before the first one is logged. A newline will be printed

    after each error.

    This function is compatible with the helpers from Support/WithColor.h. You

    can pass any of them as the OS. Please consider using them instead of

    including 'error: ' in the ErrorBanner.

    This is useful in the base level of your program to allow clean termination

    (allowing clean deallocation of resources, etc.), while reporting error

    information to the user.

    Defined at line 65 of file llvm/lib/Support/Error.cpp

  • basic_string toString (Error E)

    Write all error messages (if any) in E to a string. The newline character

    is used to separate error messages.

    Defined at line 77 of file llvm/lib/Support/Error.cpp

  • bool NullPointerIsDefined (const Function * F, unsigned int AS)

    Check whether null pointer dereferencing is considered undefined behavior

    for a given function or an address space.

    Null pointer access in non-zero address space is not considered undefined.

    Return value: false => null pointer dereference is undefined.

    Return value: true => null pointer dereference is not undefined.

    Defined at line 1175 of file llvm/lib/IR/Function.cpp

  • basic_string toStringWithoutConsuming (const Error & E)

    Like toString(), but does not consume the error. This can be used to print

    a warning while retaining the original error object.

    Defined at line 85 of file llvm/lib/Support/Error.cpp

  • ImmutablePass * createExternalAAWrapperPass (function Callback)

    A wrapper pass around a callback which can be used to populate the

    AAResults in the AAResultsWrapperPass from an external AA.

    The callback provided here will be used each time we prepare an AAResults

    object, and will receive a reference to the function wrapper pass, the

    function, and the AAResults object to populate. This should be used when

    setting up a custom pass pipeline to inject a hook into the AA results.

    Defined at line 729 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • void diagnoseDontCall (const CallInst & CI)

    Defined at line 473 of file llvm/lib/IR/DiagnosticInfo.cpp

  • Error errorCodeToError (error_code )

    Helper for converting an std::error_code to a Error.

    Defined at line 111 of file llvm/lib/Support/Error.cpp

  • error_code inconvertibleErrorCode ()

    The value returned by this function can be returned from convertToErrorCode

    for Error values where no sensible translation to std::error_code exists.

    It should only be used in this situation, and should never be used where a

    sensible conversion to std::error_code is available, as attempts to convert

    to/from this error will result in a fatal error. (i.e. it is a programmatic

    error to try to convert such a value).

    Defined at line 98 of file llvm/lib/Support/Error.cpp

  • error_code errorToErrorCode (Error Err)

    Helper for converting an ECError to a std::error_code.

    This method requires that Err be Error() or an ECError, otherwise it

    will trigger a call to abort().

    Defined at line 117 of file llvm/lib/Support/Error.cpp

  • bool tryLess (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, CandReason Reason)

    Return true if this heuristic determines order.

    TODO: Consider refactor return type of these functions as integer or enum,

    as we may need to differentiate whether TryCand is better than Cand.

    Defined at line 3439 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool tryGreater (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, CandReason Reason)

    Defined at line 3455 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool tryLatency (GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, SchedBoundary & Zone)

    Defined at line 3471 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool tryPressure (const PressureChange & TryP, const PressureChange & CandP, GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, CandReason Reason, const TargetRegisterInfo * TRI, const MachineFunction & MF)

    Defined at line 3787 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • unsigned int getWeakLeft (const SUnit * SU, bool isTop)

    Defined at line 3825 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • int biasPhysReg (const SUnit * SU, bool isTop)

    Minimize physical register live ranges. Regalloc wants them adjacent to

    their physreg def/use.

    FIXME: This is an unnecessary check on the critical path. Most are root/leaf

    copies which can be prescheduled. The rest (e.g. x86 MUL) could be bundled

    with the operation that produces or consumes the physreg. We'll do this when

    regalloc has support for parallel copies.

    Defined at line 3836 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • Error createStringError (std::string && Msg, error_code EC)

    Defined at line 163 of file llvm/lib/Support/Error.cpp

  • Error createStringError (std::string && Msg, error_code EC)

    Defined at line of file

  • raw_ostream & operator<< (raw_ostream & OS, const MachineBasicBlock & MBB)

    Defined at line 115 of file llvm/lib/CodeGen/MachineBasicBlock.cpp

  • Printable printMBBReference (const MachineBasicBlock & MBB)

    Prints a machine basic block reference.

    The format is:

    %bb.5 - a machine basic block with MBB.getNumber() == 5.

    Usage: OS

    <

    <

    printMBBReference(MBB)

    <

    <

    '

    ';

    Defined at line 120 of file llvm/lib/CodeGen/MachineBasicBlock.cpp

  • Error createFileError (const Twine & , Error )

    Concatenate a source file path and/or name with an Error. The resulting

    Error is unchecked.

    Defined at line 1399 of file llvm/include/llvm/Support/Error.h

  • Error createFileError (const Twine & , size_t , Error )

    Concatenate a source file path and/or name with line number and an Error.

    The resulting Error is unchecked.

    Defined at line 1405 of file llvm/include/llvm/Support/Error.h

  • void createProfileFileNameVar (Module & M, StringRef InstrProfileOutput)

    Create the variable for the profile file name.

    Defined at line 1539 of file llvm/lib/ProfileData/InstrProf.cpp

  • int createLoadClusterDAGMutation (const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, bool ReorderWhileClustering)

    If ReorderWhileClustering is set to true, no attempt will be made to

    reduce reordering due to store clustering.

    Defined at line 2052 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • int createStoreClusterDAGMutation (const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, bool ReorderWhileClustering)

    If ReorderWhileClustering is set to true, no attempt will be made to

    reduce reordering due to store clustering.

    Defined at line 2061 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • int createCopyConstrainDAGMutation (const TargetInstrInfo * TII, const TargetRegisterInfo * TRI)

    Defined at line 2299 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • Printable printReg (Register Reg, const TargetRegisterInfo * TRI, unsigned int SubIdx, const MachineRegisterInfo * MRI)

    Prints virtual and physical registers with or without a TRI instance.

    The format is:

    %noreg - NoRegister

    %5 - a virtual register.

    %5:sub_8bit - a virtual register with sub-register index (with TRI).

    %eax - a physical register

    %physreg17 - a physical register when no TRI instance given.

    Usage: OS

    <

    <

    printReg(Reg, TRI, SubRegIdx)

    <

    <

    '

    ';

    Defined at line 105 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • const MachineInstr * machineFunctionIsIllegal (const MachineFunction & MF)

    Checks that MIR is fully legal, returns an illegal instruction if it's not,

    nullptr otherwise

    Defined at line 453 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

  • Printable printRegUnit (MCRegUnit Unit, const TargetRegisterInfo * TRI)

    Create Printable object to print register units on a

    Register units are named after their root registers:

    al - Single root.

    fp0~st7 - Dual roots.

    Usage: OS

    <

    <

    printRegUnit(Unit, TRI)

    <

    <

    '

    ';

    Defined at line 136 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • Printable printVRegOrUnit (VirtRegOrUnit VRegOrUnit, const TargetRegisterInfo * TRI)

    Create Printable object to print virtual registers and physical

    registers on a

    Defined at line 159 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • Printable printRegClassOrBank (Register Reg, const MachineRegisterInfo & RegInfo, const TargetRegisterInfo * TRI)

    Create Printable object to print register classes or register banks

    on a

    Defined at line 170 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • variant getReductionStyle (bool InLoop, bool Ordered, unsigned int ScaleFactor)

    Defined at line 2423 of file llvm/include/../lib/Transforms/Vectorize/VPlan.h

  • template <typename FirstRange, typename... RestRanges>
    auto enumerate (FirstRange && First, RestRanges &&... Rest)

    Given two or more input ranges, returns a new range whose values are

    tuples (A, B, C, ...), such that A is the 0-based index of the item in the

    sequence, and B, C, ..., are the values from the original input ranges. All

    input ranges are required to have equal lengths. Note that the returned

    iterator allows for the values (B, C, ...) to be modified. Example:

    ```c++

    std::vector

    <char

    > Letters = {'A', 'B', 'C', 'D'};

    std::vector

    <int

    > Vals = {10, 11, 12, 13};

    for (auto [Index, Letter, Value] : enumerate(Letters, Vals)) {

    printf("Item %zu - %c: %d\n", Index, Letter, Value);

    Value -= 10;

    }

    ```

    Output:

    Item 0 - A: 10

    Item 1 - B: 11

    Item 2 - C: 12

    Item 3 - D: 13

    or using an iterator:

    ```c++

    for (auto it : enumerate(Vals)) {

    it.value() += 10;

    printf("Item %zu: %d\n", it.index(), it.value());

    }

    ```

    Output:

    Item 0: 20

    Item 1: 21

    Item 2: 22

    Item 3: 23

    Defined at line 2530 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename... ArgsAndPredicate>
    bool all_of_zip (ArgsAndPredicate &&... argsAndPredicate)

    Compare two zipped ranges using the provided predicate (as last argument).

    Return true if all elements satisfy the predicate and false otherwise.

    Return false if the zipped iterator aren't all at end (size mismatch).

    Defined at line 2578 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItems (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<!std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )

    Return true if the sequence [Begin, End) has exactly N items. Runs in O(N)

    time. Not meant for use with random-access iterators.

    Can optionally take a predicate to filter lazily some items.

    Defined at line 2589 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItems (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<! std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )

    Return true if the sequence [Begin, End) has exactly N items. Runs in O(N)

    time. Not meant for use with random-access iterators.

    Can optionally take a predicate to filter lazily some items.

    Defined at line 2589 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItems (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, int * )

    Return true if the sequence [Begin, End) has exactly N items. Runs in O(N)

    time. Not meant for use with random-access iterators.

    Can optionally take a predicate to filter lazily some items.

    Defined at line 2589 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItemsOrMore (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, int * )

    Return true if the sequence [Begin, End) has N or more items. Runs in O(N)

    time. Not meant for use with random-access iterators.

    Can optionally take a predicate to lazily filter some items.

    Defined at line 2614 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItemsOrMore (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<!std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )

    Return true if the sequence [Begin, End) has N or more items. Runs in O(N)

    time. Not meant for use with random-access iterators.

    Can optionally take a predicate to lazily filter some items.

    Defined at line 2614 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItemsOrMore (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<! std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )

    Return true if the sequence [Begin, End) has N or more items. Runs in O(N)

    time. Not meant for use with random-access iterators.

    Can optionally take a predicate to lazily filter some items.

    Defined at line 2614 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
    bool hasNItemsOrLess (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted)

    Returns true if the sequence [Begin, End) has N or less items. Can

    optionally take a predicate to lazily filter some items.

    Defined at line 2635 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename ContainerTy>
    bool hasNItems (ContainerTy && C, unsigned int N)

    Returns true if the given container has exactly N items

    Defined at line 2645 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename ContainerTy>
    bool hasNItemsOrMore (ContainerTy && C, unsigned int N)

    Returns true if the given container has N or more items

    Defined at line 2651 of file llvm/include/llvm/ADT/STLExtras.h

  • template <typename ContainerTy>
    bool hasNItemsOrLess (ContainerTy && C, unsigned int N)

    Returns true if the given container has N or less items

    Defined at line 2657 of file llvm/include/llvm/ADT/STLExtras.h

  • uint64_t getDwoId (const DWARFDie & CUDie)

    Defined at line 2712 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • basic_string remapPath (StringRef Path, const DWARFLinkerBase::ObjectPrefixMapTy & ObjectPrefixMap)

    Defined at line 2720 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • basic_string getPCMFile (const DWARFDie & CUDie, const DWARFLinkerBase::ObjectPrefixMapTy * ObjectPrefixMap)

    Defined at line 2733 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

  • IRBuilder<> * unwrap (LLVMBuilderRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 2874 of file llvm/include/llvm/IR/IRBuilder.h

  • LLVMBuilderRef wrap (const int * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 2874 of file llvm/include/llvm/IR/IRBuilder.h

  • LLVMBuilderRef wrap (const IRBuilder<> * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 2874 of file llvm/include/llvm/IR/IRBuilder.h

  • template <typename base_ty, base_ty BestState, base_ty WorstState>
    raw_ostream & operator<< (raw_ostream & OS, const int & S)

    Defined at line 3467 of file llvm/include/llvm/Transforms/IPO/Attributor.h

  • template <typename StateType>
    ChangeStatus clampStateAndIndicateChange (StateType & S, const StateType & R)

    Helper function to clamp a state

    of type

    with the

    information in

    and indicate/return if

    did change (as-in update is

    required to be run again).

    Defined at line 3505 of file llvm/include/llvm/Transforms/IPO/Attributor.h

  • hash_code hash_value (const APFloat & Arg)

    See friend declarations above.

    These additional declarations are required in order to compile LLVM with IBM

    xlC compiler.

    Defined at line 5967 of file llvm/lib/Support/APFloat.cpp

  • int ilogb (const APFloat & Arg)

    Returns the exponent of the internal representation of the APFloat.

    Because the radix of APFloat is 2, this is equivalent to floor(log2(x)).

    For special APFloat values, this returns special error codes:

    NaN ->

    0 ->

    Inf ->

    Defined at line 1516 of file llvm/include/llvm/ADT/APFloat.h

  • APFloat scalbn (APFloat X, int Exp, RoundingMode RM)

    Returns: X * 2^Exp for integral exponents.

    Defined at line 1525 of file llvm/include/llvm/ADT/APFloat.h

  • APFloat frexp (const APFloat & X, int & Exp, RoundingMode RM)

    Equivalent of C standard library function.

    While the C standard says Exp is an unspecified value for infinity and nan,

    this returns INT_MAX for infinities, and INT_MIN for NaNs.

    Defined at line 1537 of file llvm/include/llvm/ADT/APFloat.h

  • void verifyMachineFunction (const std::string & Banner, const MachineFunction & MF)

    Defined at line 417 of file llvm/lib/CodeGen/MachineVerifier.cpp

  • bool isNullConstant (SDValue V)

    Returns true if

    is a constant integer zero.

    Defined at line 12829 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isNullConstantOrUndef (SDValue V)

    Returns true if

    is a constant integer zero or an UNDEF node.

    Defined at line 12834 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isNullFPConstant (SDValue V)

    Returns true if

    is an FP constant with a value of positive zero.

    Defined at line 12838 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isAllOnesConstant (SDValue V)

    Returns true if

    is an integer constant with all bits set.

    Defined at line 12843 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isOneConstant (SDValue V)

    Returns true if

    is a constant integer one.

    Defined at line 12848 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isMinSignedConstant (SDValue V)

    Returns true if

    is a constant min signed integer value.

    Defined at line 12853 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isNeutralConstant (unsigned int Opc, SDNodeFlags Flags, SDValue V, unsigned int OperandNo)

    Returns true if

    is a neutral element of Opc with Flags.

    When OperandNo is 0, it checks that V is a left identity. Otherwise, it

    checks that V is a right identity.

    Defined at line 12858 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue peekThroughBitcasts (SDValue V)

    Return the non-bitcasted source operand of

    if it exists.

    If

    is not a bitcasted value, it is returned as-is.

    Defined at line 12921 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue peekThroughOneUseBitcasts (SDValue V)

    Return the non-bitcasted and one-use source operand of

    if it exists.

    If

    is not a bitcasted one-use value, it is returned as-is.

    Defined at line 12927 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue peekThroughExtractSubvectors (SDValue V)

    Return the non-extracted vector source operand of

    if it exists.

    If

    is not an extracted subvector, it is returned as-is.

    Defined at line 12933 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue peekThroughInsertVectorElt (SDValue V, const APInt & DemandedElts)

    Recursively peek through INSERT_VECTOR_ELT nodes, returning the source

    vector operand of

    as long as

    is an INSERT_VECTOR_ELT operation

    that do not insert into any of the demanded vector elts.

    Defined at line 12939 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue peekThroughTruncates (SDValue V)

    Return the non-truncated source operand of

    if it exists.

    If

    is not a truncation, it is returned as-is.

    Defined at line 12956 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isBitwiseNot (SDValue V, bool AllowUndefs)

    Returns true if

    is a bitwise not operation. Assumes that an all ones

    constant is canonicalized to be operand 1.

    Defined at line 12962 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue getBitwiseNotOperand (SDValue V, SDValue Mask, bool AllowUndefs)

    If

    is a bitwise not, returns the inverted operand. Otherwise returns

    an empty SDValue. Only bits set in

    are required to be inverted,

    other bits may be arbitrary.

    Defined at line 6238 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • ConstantSDNode * isConstOrConstSplat (SDValue N, bool AllowUndefs, bool AllowTruncation)

    Returns the SDNode if it is a constant splat BuildVector or constant int.

    Defined at line 12972 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • ConstantSDNode * isConstOrConstSplat (SDValue N, const APInt & DemandedElts, bool AllowUndefs, bool AllowTruncation)

    Returns the SDNode if it is a demanded constant splat BuildVector or

    constant int.

    Defined at line 12981 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • ConstantFPSDNode * isConstOrConstSplatFP (SDValue N, bool AllowUndefs)

    Returns the SDNode if it is a constant splat BuildVector or constant float.

    Defined at line 13018 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • ConstantFPSDNode * isConstOrConstSplatFP (SDValue N, const APInt & DemandedElts, bool AllowUndefs)

    Returns the SDNode if it is a demanded constant splat BuildVector or

    constant float.

    Defined at line 13026 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isNullOrNullSplat (SDValue V, bool AllowUndefs)

    Return true if the value is a constant 0 integer or a splatted vector of

    a constant 0 integer (with no undefs by default).

    Build vector implicit truncation is not an issue for null values.

    Defined at line 13048 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isOneOrOneSplat (SDValue V, bool AllowUndefs)

    Return true if the value is a constant 1 integer or a splatted vector of a

    constant 1 integer (with no undefs).

    Build vector implicit truncation is allowed, but the truncated bits need to

    be zero.

    Defined at line 13055 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isOneOrOneSplatFP (SDValue V, bool AllowUndefs)

    Return true if the value is a constant floating-point value, or a splatted

    vector of a constant floating-point value, of 1.0 (with no undefs).

    Defined at line 13061 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isAllOnesOrAllOnesSplat (SDValue V, bool AllowUndefs)

    Return true if the value is a constant -1 integer or a splatted vector of a

    constant -1 integer (with no undefs).

    Does not permit build vector implicit truncation.

    Defined at line 13066 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isOnesOrOnesSplat (SDValue N, bool AllowUndefs)

    Return true if the value is a constant 1 integer or a splatted vector of a

    constant 1 integer (with no undefs).

    Does not permit build vector implicit truncation.

    Defined at line 13073 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isZeroOrZeroSplat (SDValue N, bool AllowUndefs)

    Return true if the value is a constant 0 integer or a splatted vector of a

    constant 0 integer (with no undefs).

    Build vector implicit truncation is allowed.

    Defined at line 13079 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool isZeroOrZeroSplatFP (SDValue N, bool AllowUndefs)

    Return true if the value is a constant (+/-)0.0 floating-point value or a

    splatted vector thereof (with no undefs).

    Defined at line 13085 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const Record & R)

    Defined at line 3037 of file llvm/lib/TableGen/Record.cpp

  • void createUnpackShuffleMask (EVT VT, SmallVectorImpl<int> & Mask, bool Lo, bool Unary)

    Generate unpacklo/unpackhi shuffle mask.

    Defined at line 4855 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void createSplat2ShuffleMask (MVT VT, SmallVectorImpl<int> & Mask, bool Lo)

    Similar to unpacklo/unpackhi, but without the 128-bit lane limitation

    imposed by AVX and specific to the unary pattern. Example:

    v8iX Lo -->

    <

    0, 0, 1, 1, 2, 2, 3, 3>

    v8iX Hi -->

    <

    4, 4, 5, 5, 6, 6, 7, 7>

    Defined at line 4875 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • ImmutablePass * createTargetTransformInfoWrapperPass (TargetIRAnalysis TIRA)

    Create an analysis pass wrapper around a TTI object.

    This analysis pass just holds the TTI instance and makes it available to

    clients.

    Defined at line 1542 of file llvm/lib/Analysis/TargetTransformInfo.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const RecordKeeper & RK)

    Defined at line 3285 of file llvm/lib/TableGen/Record.cpp

  • void EmitDetailedRecords (const RecordKeeper & RK, raw_ostream & OS)

    This function is called by TableGen after parsing the files.

    Defined at line 189 of file llvm/lib/TableGen/DetailedRecordsBackend.cpp

  • void EmitJSON (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 182 of file llvm/lib/TableGen/JSONBackend.cpp

  • void StoreIntToMemory (const APInt & IntVal, uint8_t * Dst, unsigned int StoreBytes)

    StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst

    with the integer held in IntVal.

    Defined at line 3051 of file llvm/lib/Support/APInt.cpp

  • void LoadIntFromMemory (APInt & IntVal, const uint8_t * Src, unsigned int LoadBytes)

    LoadIntFromMemory - Loads the integer stored in the LoadBytes bytes starting

    from Src into IntVal, which is assumed to be wide enough and to hold zero.

    Defined at line 3077 of file llvm/lib/Support/APInt.cpp

  • template <typename FolderTy, typename InserterTy>
    IRBuilder<FolderTy, InserterTy> <deduction guide for IRBuilder> (LLVMContext & , FolderTy , InserterTy , MDNode * , ArrayRef )

    Defined at line of file

  • IRBuilder<> <deduction guide for IRBuilder> (LLVMContext & , MDNode * , ArrayRef )

    Defined at line of file

  • template <typename FolderTy>
    IRBuilder<FolderTy> <deduction guide for IRBuilder> (BasicBlock * , FolderTy , MDNode * , ArrayRef )

    Defined at line of file

  • IRBuilder<> <deduction guide for IRBuilder> (BasicBlock * , MDNode * , ArrayRef )

    Defined at line of file

  • IRBuilder<> <deduction guide for IRBuilder> (Instruction * , MDNode * , ArrayRef )

    Defined at line of file

  • template <typename FolderTy>
    IRBuilder<FolderTy> <deduction guide for IRBuilder> (BasicBlock * , ilist_iterator_w_bits , FolderTy , MDNode * , ArrayRef )

    Defined at line of file

  • IRBuilder<> <deduction guide for IRBuilder> (BasicBlock * , ilist_iterator_w_bits , MDNode * , ArrayRef )

    Defined at line of file

  • raw_ostream & operator<< (raw_ostream & OS, const AbstractAttribute & AA)

    Forward declarations of output streams for debug purposes.

    {

    Defined at line 3717 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, ChangeStatus S)

    Helpers to ease debugging through output streams and print calls.

    {

    Defined at line 3667 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, Kind )

    Defined at line 3671 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const IRPosition & )

    Defined at line 3693 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const AbstractState & State)

    Defined at line 3713 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const IntegerRangeState & State)

    Defined at line 3703 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const PotentialConstantIntValuesState & R)

    Defined at line 3722 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const PotentialLLVMValuesState & R)

    Defined at line 3738 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • void GetReturnInfo (CallingConv::ID CC, Type * ReturnType, AttributeList attr, SmallVectorImpl<ISD::OutputArg> & Outs, const TargetLowering & TLI, const DataLayout & DL)

    Get the EVTs and ArgFlags collections that represent the legalized return

    type of the given function. This does not require a DAG or a return value,

    and is suitable for use before any DAGs for the function are constructed.

    TODO: Move this out of TargetLowering.cpp.

    Defined at line 2014 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • raw_ostream & operator<< (raw_ostream & , const AAPointerInfo::Access & )

    Defined at line 3786 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • bool operator== (const DIExpression::FragmentInfo & A, const DIExpression::FragmentInfo & B)

    Defined at line 3860 of file llvm/include/llvm/IR/DebugInfoMetadata.h

  • bool operator< (const DIExpression::FragmentInfo & A, const DIExpression::FragmentInfo & B)

    Defined at line 3866 of file llvm/include/llvm/IR/DebugInfoMetadata.h

  • raw_ostream & operator<< (raw_ostream & OS, const VPlan & Plan)

    Defined at line 4666 of file llvm/include/../lib/Transforms/Vectorize/VPlan.h

  • const Value * getLoadStorePointerOperand (const Value * V)

    A helper function that returns the pointer operand of a load or store

    instruction. Returns nullptr if not load or store.

    Defined at line 5100 of file llvm/include/llvm/IR/Instructions.h

  • Value * getLoadStorePointerOperand (Value * V)

    Defined at line 5107 of file llvm/include/llvm/IR/Instructions.h

  • const Value * getPointerOperand (const Value * V)

    A helper function that returns the pointer operand of a load, store

    or GEP instruction. Returns nullptr if not load, store, or GEP.

    Defined at line 5114 of file llvm/include/llvm/IR/Instructions.h

  • Value * getPointerOperand (Value * V)

    Defined at line 5121 of file llvm/include/llvm/IR/Instructions.h

  • Align getLoadStoreAlignment (const Value * I)

    A helper function that returns the alignment of load or store instruction.

    Defined at line 5126 of file llvm/include/llvm/IR/Instructions.h

  • void setLoadStoreAlignment (Value * I, Align NewAlign)

    A helper function that set the alignment of load or store instruction.

    Defined at line 5135 of file llvm/include/llvm/IR/Instructions.h

  • unsigned int getLoadStoreAddressSpace (const Value * I)

    A helper function that returns the address space of the pointer operand of

    load or store instruction.

    Defined at line 5146 of file llvm/include/llvm/IR/Instructions.h

  • Type * getLoadStoreType (const Value * I)

    A helper function that returns the type of a load or store instruction.

    Defined at line 5155 of file llvm/include/llvm/IR/Instructions.h

  • std::optional<SyncScope::ID> getAtomicSyncScopeID (const Instruction * I)

    A helper function that returns an atomic operation's sync scope; returns

    std::nullopt if it is not an atomic operation.

    Defined at line 5165 of file llvm/include/llvm/IR/Instructions.h

  • void setAtomicSyncScopeID (Instruction * I, SyncScope::ID SSID)

    A helper function that sets an atomic operation's sync scope.

    Defined at line 5182 of file llvm/include/llvm/IR/Instructions.h

  • raw_ostream & operator<< (raw_ostream & OS, LoopDisposition LD)

    Note: these overloaded operators need to be in the llvm namespace for them

    to be resolved correctly. If we put them outside the llvm namespace, the

    OS

    <

    <

    ": "

    <

    <

    SE.getLoopDisposition(SV, InnerL);

    code below "breaks" and start printing raw enum values as opposed to the

    string values.

    Defined at line 14012 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • raw_ostream & operator<< (raw_ostream & OSBlockDisposition BD)

    Defined at line 14028 of file llvm/lib/Analysis/ScalarEvolution.cpp